news 2026/4/18 9:42:26

JS核心语法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JS核心语法
特性varletconst
块级作用域❌(函数级作用域)
变量提升✅(可先使用后声明)❌(暂时性死区)❌(暂时性死区)
重复声明
重新赋值❌(声明时必须赋值)
// var 问题:无块级作用域 if (true) { var a = 10; } console.log(a); // 10(全局可见,不合理) // let 解决块级作用域 if (true) { let b = 20; } console.log(b); // 报错:b is not defined // const 常量(不可修改引用) const PI = 3.14159; PI = 3; // 报错:Assignment to constant variable const obj = { name: '张三' }; obj.name = '李四'; // 允许(仅禁止修改引用,对象内容可改)
console.log(num); // undefined(变量提升,声明了但未赋值) var num = 10; // let/const 无变量提升 console.log(num2); // 报错:Cannot access 'num2' before initialization let num2 = 20;

三、数据类型

JS 是弱类型语言(声明变量时无需指定类型,赋值后类型可变),分为两大类:

3.1 原始类型(值类型)

存储具体值,占用空间小,赋值时拷贝值。

  • string:字符串(单引号 / 双引号 / 反引号包裹)
  • number:数值(整数、小数、NaN、Infinity)
  • boolean:布尔值(true/false)
  • undefined:声明变量未赋值时的默认值
  • null:表示 “空”(手动赋值,类型为 object,历史遗留问题)
  • symbol(ES6):唯一值(用于对象唯一属性名)
  • bigint(ES11):大整数(解决 Number 最大值2^53-1限制)
let str = 'Hello JS'; // string let num = 100; // number let bool = true; // boolean let un = undefined; // undefined let nu = null; // null let sym = Symbol('id'); // symbol let big = 9999999999999999999999999999n; // bigint

3.2 引用类型

存储内存地址,占用空间大,赋值时拷贝地址(多个变量指向同一内存)。

  • object:对象(普通对象、数组、正则、日期等)
  • function:函数(特殊的对象)
// 普通对象 let user = { name: '张三', age: 20 }; // 数组(特殊对象) let arr = [1, 2, 3]; // 函数(特殊对象) let fn = function() {};

3.4 类型转换

3.4.1 隐式转换(JS 自动触发,易踩坑)
  • 转布尔:0''undefinednullNaNfalse,其余为true
  • 转数字:字符串转数字('123' → 123'abc' → NaN),布尔转数字(true → 1false → 0)。
  • 转字符串:数字 / 布尔转字符串(123 → '123'true → 'true')。
3.4.2 显式转换(手动控制,推荐)
// 转数字 Number('123'); // 123 parseInt('123abc'); // 123(取整) parseFloat('123.45abc'); // 123.45 // 转字符串 String(123); // '123' (123).toString(); // '123' // 转布尔 Boolean(0); // false Boolean(''); // false Boolean('abc'); // true

逻辑运算符

用于条件判断,返回最终的真值 / 假值。

运算符说明示例短路规则
&&逻辑与true && false → false左假则返回左,左真返回右
``逻辑或`truefalse → true`左真则返回左,左假返回右
!逻辑非!true → false取反
// && 短路:左假返回左 console.log(false && 123); // false console.log(1 && 2 && 3); // 3(全部为真,返回最后一个) // || 短路:左真返回左 console.log(123 || false); // 123 console.log(0 || '' || 'abc'); // 'abc'(全部为假,返回最后一个) // 实用场景:设置默认值 let userName = ''; let name = userName || '游客'; // name → '游客'

三元运算符(条件运算符)

语法:条件 ? 表达式1 : 表达式2(简化 if-else)

let age = 18; let result = age >= 18 ? '成年' : '未成年'; console.log(result); // '成年' // 嵌套三元(不推荐多层,可读性差) let score = 85; let grade = score >= 90 ? 'A' : score >= 80 ? 'B' : 'C';
do-while 循环

语法:do { 循环体 } while (条件)(先执行一次,再判断条件)

let i = 0; do { console.log(i); i++; } while (i < 5);
增强循环(ES6+)

for-in:遍历对象的可枚举属性(不推荐遍历数组,会遍历原型链)

let obj = { name: '张三', age: 20 }; for (let key in obj) { console.log(key, obj[key]); // name 张三, age 20 }

for-of:遍历可迭代对象(数组、字符串、Map/Set 等),返回值而非索引

let arr = ['a', 'b', 'c']; for (let val of arr) { console.log(val); // a,b,c }
循环控制
  • break:跳出当前循环(终止循环)。
  • continue:跳过当前轮循环,进入下一轮。
    // break 示例:找到第一个偶数就停止 for (let i = 1; i < 10; i++) { if (i % 2 === 0) { console.log('第一个偶数:', i); // 2 break; } } // continue 示例:只打印奇数 for (let i = 1; i < 10; i++) { if (i % 2 === 0) { continue; } console.log(i); // 1,3,5,7,9 }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 5:32:29

YOLOX-Nano彩色盒子目标检测:8x8批量训练300轮COCO数据集优化方案

1. YOLOX-Nano彩色盒子目标检测&#xff1a;8x8批量训练300轮COCO数据集优化方案 在计算机视觉领域&#xff0c;目标检测是一项基础且重要的任务&#xff0c;广泛应用于自动驾驶、安防监控、医疗影像分析等多个领域。本文将详细介绍如何使用YOLOX-Nano模型进行彩色盒子目标检测…

作者头像 李华
网站建设 2026/4/18 5:23:04

系统流异世探险动态漫制作2025推荐,全方位解析

系统流异世探险动态漫制作2025推荐&#xff0c;全方位解析在当今的动态漫制作领域&#xff0c;系统流异世探险题材凭借其独特的魅力吸引了众多观众的目光。然而&#xff0c;要制作出一部优秀的系统流异世探险动态漫并非易事&#xff0c;需要在多个方面进行精心策划和制作。本文…

作者头像 李华
网站建设 2026/4/18 3:29:12

vue基于Spring Boot的婚恋相亲交友网站_6wivw6dp

目录 具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring…

作者头像 李华
网站建设 2026/4/18 3:25:28

vue基于Spring Boot的教育ppt资源分享下载推荐平台_y9ktf0ec_

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/4/18 3:29:36

第二十七周周报

文章目录 摘要Abstract一.背景分析二、创新点三、实验和结果分析总结 摘要 本周研读的文献《基于 GAN 的中文虚假评论数据集生成方法》针对当前中文虚假评论检测研究中缺乏公开数据集的现状&#xff0c;提出了一种利用生成对抗网络&#xff08;GAN&#xff09;构建中文虚假评论…

作者头像 李华