-
可以去掉40行的function
查看全部 -
只有一个参数可以不写小括号
查看全部 -
es6简写箭头函数
查看全部 -
es6写法。66
查看全部 -
以前de以前的函数写法
查看全部 -
优先用const,确实需要改变值才用let声明
查看全部 -
递归冻结,keys第一次见
查看全部 -
freeze只能冻结基本数据类型,而不能冻结嵌套的对象如数组
查看全部 -
freeze冻结堆内存
查看全部 -
不可被改变指的是引用地址不变,但存在于堆内存中的数据可以改变
查看全部 -
const定义常量的特点
查看全部 -
vscode插件安装
查看全部 -
object.freese()冻结查看全部
-
解构直接取data
查看全部 -
const 声明基本数据类型的时候。number , 布尔,字符串,undefind是不能改变的
const 声明 引用数据 object array 类型的时候,是可以进行改变的,
因为 修改的是引用地址的内容,并不是引用的地址。
如果需求里 需要 对象和数组 也是不可修改的,可以用 Object.freeze().冻结这个对象或者函数。就可以不被改变了,但是他只能作为浅层次的冻结,只能冻结第一层。深层次的无法冻结
解决方案
使用递归 将深层次的对象或者数组进行冻结
function myFreeze(obj){
//将第一层冻结住
Object.freeze(obj);
// Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组
console.log(Object.keys(obj)) //['name', 'year', 'extension']
Object.keys(obj).forEach(function(key){
if(typeof obj[key] == 'object'){
console.log(typeof obj[key])
myFreeze(obj[key])
}
})
}
查看全部 -
const
不允许重复声明
是唯一的
不属于顶层对象window
const 避免污染全局变量
不存在变量提升
暂时性死区
块级作用域
用const 声明一个不可改变的常量
查看全部 -
Object.freeze() 不仅能冻结对象 还能冻结数组呀
Object.freeze()只能浅层次冻结,嵌套引用不能冻结
//自行封装冻结 递归 function myFreeze(obj){ Object.freeze(obj); Object.keys(obj).forEach(function(key){ if(typeof obj[key] == 'object'){ myFreeze(obj[key]); } }) }
查看全部 -
const 不能重复声明
const 不属于顶层对象window
const不存在变量提升
暂时性死区
块级作用域
查看全部 -
查看全部
-
箭头函数
查看全部 -
let & const
查看全部 -
const
查看全部 -
只能浅层次冻结,不能深层次冻结查看全部
举报