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

外贸简单网站建设备案用网站建设方案

外贸简单网站建设,备案用网站建设方案,asia域名,青岛app开发公司排行榜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://www.dtcms.com/wzjs/568139.html

相关文章:

  • 网站优化课程培训网站建设工程师待遇
  • 一个公司做100个网站网站模板下载器
  • 北京网站建设正邦php网站开发实例视频
  • 佛山建网站的公司企业咨询是什么
  • 成都网站搭建公司网站制作维护
  • ppt做网站网上书城网站建设总结
  • cms下载官方网站python基础教程文档
  • 南京电商网站建设公司私人做的网站怎么挣钱
  • 网站建设hnshangtian购物网站建设的选题意义
  • 小游戏网站开发做电子商务的网站
  • 那个网站做扑克牌便宜网站怎么样排名
  • 做足球经理头像的网站wordpress官方中文版
  • 网站免费响应建设网站已备案添加新域名
  • 丰都网站建设案例大连手机自适应网站建设价格
  • 网站内容搜索福州企业网站
  • 成品网站管理系统百度推广客户端电脑版
  • 地区网站建设wordpress 大数据插件
  • 微信网站制作价格锦州网站建设品牌
  • 个人网页网站建设品牌型网站的设计
  • 房产律师网站模板伊春市建设局网站
  • 延安市建设工程交易中心网站网站过期了
  • 桂阳网站建设百度网盘在线观看资源
  • 怎样用xampp做网站网站都有哪些
  • 网站开发需要多少费用网站js代码
  • 做网站标题代码无锡信息网站建设
  • 做家教网站怎么样移动网站建站视频
  • 企业支付的网站开发费如何入帐安卓端开发
  • 网站数据流分析怎么做做网站标语
  • 建设网站改版李沧网站建设谁家好
  • frontpage网站模板下载网络规划设计师 第二版 教材