打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
符号之特殊用法
~作用于数字有如下规则
-3 | -2 | -1 | 0 | 1 | 2 | 3 ===>
 2 |   1 |  0 | -1|-2 |-3|-4
基于-1会转换成0,常常用于判断数组查找返回索引,若不包含则会返回-1,所以有
var arr=[1,2,3,4];
var num=3;
var idx=arr.indexOf(num)
if(~idx){ //相当于idx!=-1,即找到了要检测的值
dosomething;
}

~~    转换成数字并且把小数点去掉    效率比Math.floor高
|        3.1415 | 0 也是取整

!!~    判断一个数是否大于0    大于0 返回true    小于0返回false

!! 相当于Boolean(),转换一个值为布尔值

!str1.indexOf(str2)  //这句的意思,如果str2处于str1开始的位置,则为true.

+ 字符串转数字  +'23'====>23


...  三点操作符,主要用于解构对象

作用1:数组去重:
var arr1 = [1, 3, 3, 5, 6, 1, 8, 9]
var r = [...new Set(arr1)]

作用2:数组拷贝:
var arr1 = [1, 2, 3]
var arr2 = [...arr1]

//数组合并
var arr1 = [1, 3, 5]
var arr2 = [2, 4, 6]
var r = [...arr1, ...arr2]

//字串打散成数组
var str = 'abcdef'
var r = [...str]

//数组解构
var [a, ...rest] = [1, 2, 3, 4, 5]
console.log(a)
console.log(rest)

//数组转对象
var arr = ['aaa', 'bbbb', 'cccc']
console.log({ ...arr});

作用3:对象拷贝: 和Object.assign()
var obj1 = {a: 1,b: 2}
var obj2 = {...obj1} 

//对象合并,如果有相同的属性,后面的会覆盖前面的
var obj1 = {a: 1,b: 2,c: 100}
var obj2 = {c: 3,d: 4}
var obj = {...obj1,...obj2}

//对象解构
var obj = {a: 1,b: 2,c: 3,d: 4,e: 5}
var {a,b,...objrest} = obj
console.log(a, b);
console.log(objrest)
-------------------------------------
var obj = {name: 'john',age: 23,sex: 'male',address: {home: "beijing",work: "shanghai"}}
var {name: ee,age,sex,address} = obj
var {home,work} = obj.address

//函数不定参数
function unsure(a, ...args) {
    console.log(args.length);
}
unsure(1, 3, 5, 6, 'aaa')
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JavaScript 基础四
遍历数组,对象和JSON
JavaScript中的所有循环类型
es6新增新特性简要总结
javascript 数组的深度复制
JavaScript知识点
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服