企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
* var 的问题 * 可以重复声明,没有报错和警告 * 无法限制修改 * 没有块级作用域,`{ }` * let 和 const * 不能重复声明 * 都是块级作用域,`{ }`块内声明的,块外无效 * let 是变量,可以修改 * const 是常量,不能修改 * 块级作用域举例 * 原来用 var 的方式,结果弹出的都是 3 * 或者将变量 封装到函数里,限制作用域,但比较麻烦 * 用 let 最简单,直接 var 改 let,解决作用域问题 let 变量命 ``` let name="dash" //let不能重复声明了。也不存在变量提升 ``` const 常量名 ``` //一定要初始值 const SEX="男" ``` 解构赋值 ``` //数组解构 const F4 =['小沈阳','刘能',"赵四","宋小宝"] let [x,l,z,s]=F4; //对象解构 const zhao={ name:"zhaobenshan", age:60, say:function(){ console.log("123") } } let {n,a,say}=zhao; say(); ``` 引入新的字符串声明方式\`\` ``` let str=`123` 变量拼接${} let age=20; let str=`我叫匿名,今年${age}岁` ``` 字符串多了两个新方法 * `startsWith` * `endsWith` ~~~js var url = 'http://qq.com' console.log(url.startsWith('http')) console.log(url.endsWith('com')) // 都是 true ~~~ Number.EPSILON 是表示最小精度 ``` function equal(a,b){ if(Math.abs(a-b)<Number.EPSILON){ return true; }else{ return false; } } console.log(0.1+0.2===0.3);//false console.log(equal(0.1+0.2, 0.3));//true ``` //1. Object.is判断两个值是否完全相等 //2. object.assign对象的合并 //3. object. setPrototypeof 与 object.getPrototypeof 对象简写 ``` let name="dash"; let say=function(){} const sc={ name, say, eat(){} } 相当于 const sc={ name:name, say:say, eat:function(){} } ```