常见js/ts面试题

var a=1;
var b=(a++)+a;
alert(b);//b=3

var a=1;
var b=(++a)+a;
alert(b);//b=4

1+{}//"1[object Object]"
2+null//2
2+undefined//NaN
"0"==false//true
isNaN(true);//false
isNaN(undefined);//true
isNaN(0/0);//true
isNaN(NaN);//true
NaN!=NaN;//true
[]!=[]//true
undefined==null;//true
-0===0//true
-0===+0//true
Object.is(+0, -0) // false
Object.is(NaN, NaN) // true
0 == null // false
1/-0===1/0;//false
new Date()+1;//是一个字符串
new Date()-1;//是一个数字
Object.setPrototypeOf(1, {}) === 1 // true
Object.setPrototypeOf('foo', {}) === 'foo' // true
Object.setPrototypeOf(true, {}) === true // true
Object.getPrototypeOf(1) === Number.prototype // true
Object.getPrototypeOf('foo') === String.prototype // true
Object.getPrototypeOf(true) === Boolean.prototype // true
var a={};
"toString" in a;//true
var a=[3,4];
3 in a;//false
1 in a;//true
const a2 = [, , ,];
0 in a2 // false
a2.length // 3
a2.map(n => 1) // [, , ,]
[]+[]//""
[]+{}//"[object Object]"
{}+[]//0
//{}被当做了代码块,只有+[],根据加法的定义,被转换为0,就得到了结果
({}) + 1//"[object Object]1"
将{}放在括号中是为了内核将其认为一个代码块
false+{}//"false[object Object]"
-2*[-1]//2
(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]//sb

[].every(function (){return false});//true
[].some(function (){return true});//false

[NaN].indexOf(NaN) //-1
[NaN].findIndex(y => Object.is(NaN, y)) //0
[NaN].includes(NaN)//true

0 in [undefined, undefined, undefined] // true
0 in [, , ,] // false

Symbol.for("bar") === Symbol.for("bar")
// true
Symbol("bar") === Symbol("bar")
// false
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值