当前位置: 首页 > wzjs >正文

北京做网站好公司新手做网站视频

北京做网站好公司,新手做网站视频,怎么免费做网站推广,建设施工合同JavaScript 基础语法系统学习笔记 前言:为什么JavaScript基础如此重要 JavaScript作为现代Web开发的三大基石之一,其重要性不言而喻。根据2023年Stack Overflow开发者调查,JavaScript连续10年成为最常用的编程语言。但很多开发者在学习框架…

JavaScript 基础语法系统学习笔记

前言:为什么JavaScript基础如此重要

JavaScript作为现代Web开发的三大基石之一,其重要性不言而喻。根据2023年Stack Overflow开发者调查,JavaScript连续10年成为最常用的编程语言。但很多开发者在学习框架时遇到瓶颈,究其原因,往往是基础不够牢固。

扎实的JavaScript基础能让你:

  1. 更容易理解各种框架的设计思想
  2. 快速定位和解决复杂问题
  3. 编写更高效、更健壮的代码
  4. 在技术面试中脱颖而出

“框架会过时,但基础永远重要。” —— 某大厂技术总监


一、变量声明:程序的记忆单元

三种声明方式对比

特性varletconst
作用域函数作用域块级作用域块级作用域
变量提升
重复声明
重新赋值

关键概念解析

  1. 变量提升(Hoisting)

    console.log(a); // undefined
    var a = 1;console.log(b); // ReferenceError
    let b = 2;
    
  2. 暂时性死区(TDZ)

    // TDZ开始
    console.log(value); // ReferenceError
    let value = "hello"; // TDZ结束
    
  3. 块级作用域实践

    // 问题示例
    for (var i = 0; i < 3; i++) {setTimeout(() => console.log(i), 100); // 输出3个3
    }// 解决方案
    for (let j = 0; j < 3; j++) {setTimeout(() => console.log(j), 100); // 输出0,1,2
    }
    

声明规范建议

  1. 默认使用const
  2. 需要重新赋值的变量用let
  3. 避免使用var
  4. 常量命名全大写:const MAX_SIZE = 100

二、数据类型:程序的构建基石

类型系统全景图

graph TDA[数据类型] --> B[原始类型]A --> C[引用类型]B --> D[Number]B --> E[String]B --> F[Boolean]B --> G[Undefined]B --> H[Null]B --> I[Symbol]B --> J[BigInt]C --> K[Object]C --> L[Array]C --> M[Function]

类型判断方法对比

typeof 42;          // "number"
typeof "text";      // "string"
typeof true;        // "boolean"
typeof undefined;   // "undefined"
typeof null;        // "object" (历史遗留问题)
typeof {};          // "object"
typeof [];          // "object"
typeof Symbol();    // "symbol"
typeof 10n;         // "bigint"// 更准确的数组判断
Array.isArray([]);  // true

特殊值注意点

  1. NaN(Not a Number)

    NaN === NaN; // false
    isNaN(NaN);  // true
    Number.isNaN(NaN); // true (更安全)
    
  2. null vs undefined

    • undefined:变量已声明但未赋值
    • null:开发者主动设置的空值

三、运算符:程序的逻辑工具

运算符优先级表(部分)

优先级运算符描述
1()分组
2!, ++逻辑非, 自增
3*, /, %乘除取余
4+, -加减
5<, <=比较
6== , ===相等
7&&逻辑与
8||逻辑或

常见陷阱示例

  1. 宽松相等(==)的隐式转换

    '' == '0';          // false
    0 == '';            // true
    0 == '0';           // true
    false == 'false';   // false
    false == '0';       // true
    
  2. 短路求值应用

    // 设置默认值
    const name = user.name || 'Anonymous';// 条件执行
    isLogin && showDashboard();
    

四、流程控制:程序的执行路径

现代循环优化

  1. 数组遍历最佳实践

    const arr = [1, 2, 3];// for...of循环
    for (const item of arr) {console.log(item);
    }// 函数式编程
    arr.forEach(item => console.log(item));
    
  2. 标签语句(高级用法)

    outerLoop: 
    for (let i = 0; i < 3; i++) {for (let j = 0; j < 3; j++) {if (i === 1 && j === 1) break outerLoop;console.log(i, j);}
    }
    

五、类型转换:数据的变形

显式转换最佳实践

// 转字符串
String(123);               // "123"
(123).toString();          // "123"
'' + 123;                  // "123" (隐式)// 转数字
Number("123");             // 123
parseInt("123px", 10);     // 123 (始终指定进制)
parseFloat("3.14.15");     // 3.14
+'42';                     // 42// 转布尔
Boolean(1);                // true
!!"text";                  // true (双非技巧)

隐式转换规则表

操作符转换规则
+优先字符串拼接
- * /优先数字运算
==复杂类型转换

六、最佳实践与常见陷阱

代码规范建议

  1. 命名约定

    • 变量/函数:驼峰式 calculateTotal
    • 类名:帕斯卡式 UserModel
    • 常量:全大写 API_KEY
  2. 防御性编程

    // 不好的写法
    function printName(user) {console.log(user.name);
    }// 好的写法
    function printName(user) {console.log(user?.name ?? 'Anonymous');
    }
    

常见面试问题

  1. 0.1 + 0.2 !== 0.3 如何解决?

    // 解决方案
    (0.1 * 10 + 0.2 * 10) / 10 === 0.3; // true
    
  2. 如何实现深拷贝?

    const deepCopy = JSON.parse(JSON.stringify(obj));
    // 注意:会丢失函数和Symbol等特殊类型
    

七、实战应用与练习

购物车计算器

function calculateCart(cartItems) {return cartItems.reduce((total, item) => {total.subtotal += item.price * item.quantity;total.items += item.quantity;return total;},{ subtotal: 0, items: 0 });
}// 使用示例
const cart = [{ name: "iPhone", price: 6999, quantity: 1 },{ name: "Case", price: 99, quantity: 2 }
];console.log(calculateCart(cart));
// 输出: { subtotal: 7197, items: 3 }

练习题

  1. 实现一个类型判断函数 getType(),能准确区分数组、null等类型

    function getType(obj) {if (obj === null) return 'null';if (Array.isArray(obj)) return 'array';return typeof obj;
    }
    
  2. 写一个安全的加法函数,处理各种边界情况

    function safeAdd(a, b) {// 你的实现
    }
    

总结与学习建议

学习路线图

  1. 基础语法 → 2. DOM操作 → 3. 异步编程 → 4. ES6+特性 → 5. 设计模式

文章转载自:

http://Dj6w4VGc.kwhrq.cn
http://9Mga6kCp.kwhrq.cn
http://bCFVT2lz.kwhrq.cn
http://f8ld4gxc.kwhrq.cn
http://XNHXwQQH.kwhrq.cn
http://oDGgFQb5.kwhrq.cn
http://xpgyYNHP.kwhrq.cn
http://nDBUWcSG.kwhrq.cn
http://PbX2lzMa.kwhrq.cn
http://sZZK4G2U.kwhrq.cn
http://kL8WPBwx.kwhrq.cn
http://FhaCxtvI.kwhrq.cn
http://EU9NPtWq.kwhrq.cn
http://rfHhiup1.kwhrq.cn
http://NcaTseRW.kwhrq.cn
http://V0dQ2yYU.kwhrq.cn
http://ldGO7X6N.kwhrq.cn
http://Zl1pGu7Z.kwhrq.cn
http://jXk6UMO7.kwhrq.cn
http://qyAURe50.kwhrq.cn
http://UUO73foM.kwhrq.cn
http://Fe320GuF.kwhrq.cn
http://toxHVCQL.kwhrq.cn
http://uovPdogN.kwhrq.cn
http://pPHEByJC.kwhrq.cn
http://ms2Yl9DE.kwhrq.cn
http://o7sc6Cp6.kwhrq.cn
http://vGgXJvXq.kwhrq.cn
http://mkXLo4aj.kwhrq.cn
http://gTabks83.kwhrq.cn
http://www.dtcms.com/wzjs/731073.html

相关文章:

  • 园林网站建设设计方案湖南长沙seo教育
  • 网站建设优化方法 s做安全题目是哪个网站
  • q网站建设智能营销型网站制作
  • 有哪些网站是cms北京优化生育
  • 英文网站建设 济南wordpress project
  • 济南网站开发公司排名邢台123生活最新帖子
  • wordpress背景自动变幻图形seo站长网怎么下载
  • 网站开发树形图重庆网站建设专家
  • 千万别去电商公司上班做seo推广网站在线咨询
  • 青岛网站建设多少钱重庆渝中区企业网站建设公司
  • 怎么.做网站镇江做网站需要多少钱
  • wordpress网站是什么意思宣传软文模板
  • 电商平台网站开发做视频搬运哪个网站最赚钱
  • 搜索引擎是网站吗wordpress怎么添加描述和关键词
  • 邯郸市教育考试院网站新遵义
  • 旅游网站建设的经济评价wordpress代码板插件
  • 百度做网站怎么样wordpress添加追番
  • 爱站长尾关键词挖掘工具[wordpress
  • 手机在线制作表白网站郑州网站制作的公司哪家好
  • 中小网站建设都有哪些注册深圳公司有什么好处
  • 网站虚拟主机内存不足能不能链接企业没有做网站有的坏处
  • 南昌英文网站建设电子商务与网站建设
  • 网站设计与开发范本wordpress模板在哪
  • 湖南省建设监理协会网站钢格板保定网站建设
  • 徐州网站建设网络推广做网站排名费用多少钱
  • 宝安做网站怎么样wordpress支持什么语言
  • 各种网站建设报价建立网站怎么申请
  • 手机企业网站建设开发中国网络平台排名前十
  • 怎样设置一个属于自己的网站做网站常用的套件
  • 做宣传语的网站简洁大气企业网站