JavaScript中的"奇奇怪怪"

filter等方法的隐式转化
var list = [1,,2,,0,5,9];
console.log(list[1]); // console: undefined
console.log(list[1] !== null); // console.log: undefined

list = list.filter(item => item !== null);
// console: [1, 2, 0, 5, 9]
通过prototype骗过引擎
var proto = {};
var obj = Object.create(proto);

function fn() {};
fn.prototype = proto;

console.log(obj instance fn);
// console: true
浮点数计算问题
0.1 + 0.2 === 0.3     // false
0.1 + 0.05 === 0.15;  // false
0.1 + 0.1 === 0.2;    // true
0.1 + 0.3 === 0.4;    // true
0.2 + 0.2 === 0.4;    // true
0.05 + 0.25 === 0.3;  // true
0.15 + 0.15 === 0.3;  // true
任何操作数与NaN进行关系比较, 结果都为false
"a" <  3// false
"a" >= 3// false
操作未声明变量
var message; // 变量声明之后取得了默认值
// var age;

console.log(message); // console: undefined
console.log(age);
// Uncaught ReferenceError: age is not defined

// 不报错
console.log(typeof message); // console: undefined
console.log(typeof age);     // console: undefined

console.log(window.message); // console: undefined
console.log(window.age);     // console: undefined  
console.log打印
var arr = [12];
console.log(arr); // console 显示[1, 2], 展开后实际没有内容, 长度为0

for(var i=0len = arr.length; i < len; i++) {
    arr.shift();
}

转载于:https://www.cnblogs.com/rencoo/p/10835885.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值