Open fecym opened 4 years ago
今日做了一个vue项目 看视频会了一种简洁关联github远程仓库的方法,下午去拿了学生证,明天要考试。浪费了3个小时,地铁上有看了红宝书看了半个小时,当然英语也没有落下。今日分享至此。每一天都要加油!期待成为更好的自己。
12月29日 经历了一次考试,全然无知,一脸懵逼,差不多20周的课我掌握的却是很少,写答案才知自己无能,考完后尽然释然,这一切变得不经意,晚上单词没写 ,没有朗读文章,晚上去了朋友那里吃饭,觉得自己很是不爽,回来跟室友发了脾气,我不喜欢烟味,很讨厌。莫名的。晚安
字位反转操作符 ~
~
返回 2 的补码,~x
大致等同于-(x+1)
在
-(x+1)
中唯一能够得到 0(或者严格来说时候 -0)的 x 值是 -1,也就是说 ~ 和一些数字在一起会返回一个假值 0,其他情况下则返回真值-1 是一个
哨位值
,哨位值是那些在各个类型中被赋予了特殊含义的值。在 C 语言中 -1 代表函数执行失败,大于等于 0 的值代表函数执行成功比如在 JavaScript 中字符串的 indexOf 方法也遵循这一惯例,该方法在字符串中搜索指定的字符串,如果找到就返回该子字符串所在的位置,否则返回 -1
~ 的用途
我们知道在 JavaScript 中假值有:
undefined、null、false、+0、-0、NaN、''
,其他都为真值,所以负数也是真值,那么我们就可以拿着~
和indexOf
一起检结果强制类型转换为 真/假 值~ 要比
>=0
和== -1
更简洁字位截除
我们经常使用
~~
来截取数字值的小数部分,以为这是和 Math.floor 效果是一样的,实际上并非如此~~
中第一个 ~ 执行 ToInt32 并反转字位,然后第二个在进行一次字位反转,就是将所有的字位反转回原值,最后得到的结果仍是 ToInt32 的结果~~
只适用于 32 位的数字,更重要的是他对负数的处理与 Math.floor 不同,所以使用时要多加注意~~x
能将值截除为一个 32 位的整数,x | 0
也可以,而且看起来更简洁哦,不过出于对运算符优先级的考虑,我们更倾向于使用~~x