一
var User = {
count: 1,
getCount: function() {
console.log('this',this)
return this.count;
}
};
User.getCount()//1
var func = User.getCount;//var定义的变量挂在window下,属于window的变量
func()//this is undefined,window环境下运行的没有this
二
setTimeout(()=>{
console.log('1')
},0)
for(let i = 0;i<1000002;i++){
if(i>1000000){
console.log('3')
}
}
console.log('2')//321
setTimeout会使其代码在同一作用域内的代码执行后执行
正则中的w代表数字、字母、下划线
正则中的s代表空格、tab、换行
三
for (var i = 1; i <= 3; i++) {
setTimeout(function() {//setTimeout为0时,代码执行就延迟
console.log(i);//444
}, 0);
}
四
String.prototype.trim = function() {//给原型添加去前后空格的方法
return this.replace(/^\s+/, "").replace(/\s+$/, "");
};
let str = ' sdsfdf '
console.log(String.prototype.trim)//类的原型是prototype
console.log(str.__proto__.trim)//实例的原型是__proto__
console.log(str)
console.log(str.trim())//实例继承了trim方法
五
console.log(Math.max(12,43,34,54)) //最大值
console.log(Math.min(46,345,34)) //最小值
六
var uname = "jack";
function change() {
console.log(uname);
var uname = "lily";
console.log(uname);
}
change(); //undefined,lily
使用该作用域中的变量,必须提前定义,不然就是undefined,不管上一层作用域有无相同名的变量,也就是说,当前作用域中有该变量,就只会用当前作用域的变量