前言
书接上文,这几天对一些比较冷门的知识点又做了一些总结,在这里写下来,避免遗忘。
1.对象防篡改
可以防止对指定的对象进行误操作
#开启防篡改
var obj= {
a:1
}
obj.__proto__.fn=function (){
return 1
}
Object.preventExtensions(obj)
obj.name = 'test';
console.log(obj)
#输出
{
a:1,
__proto__:{
fn: ƒ ();
}
}
#关闭防篡改
var obj= {
a:1
}
obj.__proto__.fn=function (){
return 1
}
//Object.preventExtensions(obj)
obj.name = 'test';
console.log(obj)
#输出
{
a:1,
name: "test"
__proto__:{
fn: ƒ ();
}
}
复制代码
2.判断对象是否可扩展
Object.isExtensible()方法可以用来判断对象是否可扩展,可以判断Object.preventExtensions,Object.seal 或 Object.freeze定义的对象
//用以判断对象是否可扩展
Object.isExtensible(obj)
1.
var obj= {a:1}
Object.preventExtensions(obj)
console.log(Object.isExtensible(obj))
//输出
false
2.
var obj= {a:1}
Object.seal(obj);
console.log(Object.isExtensible(obj))
//输出
false
复制代码
3. NaN的类型是数字
var a = 1 * 'a';
console.log(a)
console.log(typeof a)
//输出
NaN
number
复制代码
4.数组快速拉平
var a = [1,2,[3,4]];
a.flat();
console.log(a);
//输出
[1,2,3,4]
flat函数默认拉平1级
例:
[1,2,[3,[45]]].flat()
//输出
[1, 2, 3, [45]]
可以使用数字指定拉平层级,或者使用Infinity拉平任意层级
[1,2,[3,[45]]].flat(Infinity)
//输出
[1, 2, 3, 45]
复制代码
5.Json.Stringify在遇到undefined、function和symbol时
JSON.stringify(undefined)
//输出
undefined
JSON.stringify(function(){})
//输出
undefined
JSON.stringify(Symbol)
//输出
undefined
JSON.stringify([1,2,undefined,1])
//输出
"[1,2,null,1]"
JSON.stringify({a:1,b:undefined})
//输出
"{"a":1}"
复制代码
6.快速获取当前时间的时间戳
+ new Date()
//输出 单位为毫秒
1613719180196
解析:
+ new Date() 会进行隐式类型转换,调取对象的valueOf方法,等价于下方方法
new Date().valueOf()
复制代码
7.parseInt跟Number区别
var a = 123+'abc';
console.log(Number(a))
console.log(parseInt(a))
Number遇到非数字会返回NaN
parseInt遇到非数字会停止
复制代码
9.伪数组转为数组
Array.prototype.slice.call()
例:
function test(){
let args = Array.prototype.slice.call(arguments);
console.log(args);
}
test(1,2,3)
//输出:
[1, 2, 3]
复制代码
10.parseInt第二个参数
var arr = ['1', '2', '3'].map(parseInt)
console.log(arr)
//[1, NaN, NaN]
解析:
等价于
var arr = ['1', '2', '3'].map((item,index)=>{
parseInt(item,index)
})
1.
parseInt(1,0) 转为10进制
2.
parseInt(2,1) 转为1进制,2大于1所以返回NaN
3.
parseInt(3,2) 转为2进制,3大于2所以返回NaN
第一个参数为数值,第二个为进制数
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END