js call
js 中 function 其实就是 class,function name 就是 class name;
在方法体中,想要实现继承的效果,可以通过 call 来实现:
call 方法更改对象内部 this 的指向;
function Animal(name){ this.name = name; this.showName = function(){ console.log(name) } } function Dog(name){ Animal.call(this, name); } var dog = new Dog("wangwang"); dog.showName(); // output: wangwang; // 这里 Animal.call(this, name) 的意思是调用 Animal 的构造函数,也就是 Animal 方法,将内部的属性和方法绑定到 Dog 实例上。
apply
bind
void 0
因为 undefined 是全局变量,以前一些浏览器可以修改其值,所以更加严谨些的情况最好使用 void 0/void(0) 来判断,这样永远获得的都是 undefined。
目前大部分的新版浏览器都将 undefined 设置为只读,但是有些情况可能会误会。
var win = {} win.undefined = 1 console.log(win.undefined == undefined) // false if(win.undefined) console.log('pass')
优点如下:
- 某些情况下用undefined判断存在风险,因undefined有被修改的可能性,但是void 0返回值一定是undefined
- 兼容性上void 0 基本所有的浏览器都支持
- void 0比undefined字符所占空间少。
base64
var link = 'aHR0cHM6Ly93d3cuYmFpZHUuY29tL3M/d2Q9YmFzZTY0' // base64 解码 var origin = atob(link) console.log(origin) // base64 编码 link = btoa(origin) console.log(link)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步