1. 输出下列结果
console.log([+!+[]]+[+[]]); // 10
console.log((!+[]+[]+![]).length); // 9
console.log(!+[]+[]+![]); // truefalse
console.log(!+[]); // true
console.log(+[]); // 0
!用法解释:
eg: | eg: | eg: |
---|---|---|
!null=true | !''=true | !100=false |
!undefined=true | !'abc'=false |
2. (云书)输出下列结果
var aa={key:1};
var bb=aa;
aa.x=aa={key:2};
console.log(aa.x);//undefined
console.log(aa);//{key:2}
console.log(bb);//{key:1,x:{key:2}}
console.log(bb.x);//{key:2}
3. (第一秒)输出以下结果
var obj = {
a : 1,
b : function(){
console.log(this.a);
console.log(a);
}
}
var a = 2;
obj.b(); // 1 2
b(); // 报错,Uncaught ReferenceError: b is not defined
4. 输出以下结果
var foo = "Hello";
(function(){
var bar = "World";
console.log(foo + bar);
})();
console.log(foo + bar);
// 运行结果:HelloWorld Uncaught ReferenceError: bar is not defined
5. 输出以下结果
for(var i=1;i<=3;i++){
setTimeout(function(){
console.log(i)
},0);
}
// 4 4 4 循环不会等待定时器执行,所以for循环先执行完成后,此时 i=4,定时器再输出就是三个4
// 闭包方式解决输出 1 2 3 ,因为闭包会把变量保存起来
for(var i=1;i<=3;i++){
(function(i){
setTimeout(function(){
console.log(i)
},0)
})(i);
}
// 1 2 3
6. 输入两个字符串 从第一个字符串中删除第二个字符串中的所有字符串
var str1='hello chinachinachina';
var str2='ina';
//var reg=/ina/g;//字面量方式定义正则
var reg=new RegExp(str2,'g');
console.log(str1.replace(reg,'')); // hello chchch
7. 这样一个数组 var arr=[a,bc,d,d,e,a,b,f,g] 进行数组去重
var arr=['a','bc','d','d','e','a','bc','f','g','d','e','a'];
arr.reverse();
var reg=/(\w+)[^\1]*\1/;
while(reg.test(str)){
str=str.replace(RegExp.$1,'');
console.log(str);
}
arr=str.split('').reverse();
alert(arr);//a,c,b,d,e,f,g cb拆开了,这种方法只适合单个字母去重
8. 看下面代码输出什么
console.log(undefined == null); // true
console.log(1 == true); // true
console.log(2 == true); // false true会变成1,1和2当然不相等
console.log(0 == false); // true
console.log(0 == ''); // true
console.log(NaN == NaN); // false
console.log([] == false); // true
console.log([] == ![]); // true
console.log("11"+2+"1"); // 1121
console.log("11"+2-"1"); // 111 后面的减号有隐式转换的作用
console.log([]==[]); // false
console.log([]=={}); // false
console.log([]==![]); // true
console.log(typeof []); // object
console.log(typeof ![]); // boolean
console.log(![]); // false