js中变量重复声明|JavaScript|JavaScript-面试测试题先做道题:
12345(function(num) { console.log(num); var num = 10; function num() {}})();
知道 js 的变量声明和方法声明提升特性的同学应该都知道,输出肯定不会是 10. ...
阅读更多
Generator笔记|JavaScript|JavaScript-面试语法1234567function* helloWorldGenerator() { yield "hello"; yield "world"; return "ending";}var hw = helloWorldGenerator();
第一次调用时不执行
当第一次 ...
阅读更多
js中对数据类型的总结及判断数据类型的各种方法及优缺点|JavaScript|JavaScript-面试js 中的数据类型js 中只有六种原始数据类型和一个Object:
Boolean
Null
Undefined
Number
String
Symbol (ECMAScript 6 新定义)
Object
大家认真记清这个描述,不要到时候把 Array、Date 都当成 js 的数据类型就 ...
阅读更多
原生javascript实现观察者模式|JavaScript|JavaScript-面试ES5 自定义方式12345678910111213141516171819202122232425262728293031323334353637383940414243function Pub() { this.handler = {};}Pub.pro ...
阅读更多
javascript的delete属性|JavaScript|JavaScript-面试总结
delete 只是断开了属性和宿主当关系,而不会去操作宿主中的属性。[^1]
delete 只能删除自有属性,不能删除继承属性,所以 protorype 上的属性不能通过删除对象上的属性删除《Javascript 权威指南》6.3 章
场景当需要删除对象的属性时,我们会使用delete关键字 ...
阅读更多
webkit技术内幕笔记|JavaScript|JavaScript为什么说函数是一等公民
因为函数能够当做参数或返回值进行传递。
动态类型语言
Javascript
语言的另一个重大特点就是,它是一种无类型语言,或者说是动态类型语言。相比较而言,C++或者 Java 等语言都是静态类型语言,它们在编译的时候就能够知道每个变量的类型。但是,JavaScript 的语言特性让我们没有办法在编译的时候知道变量的类型
,所以只能在运行的时候才能确定
,这导致 JavaScript 语言的规范面临着性能方面的巨大压力。在运行时计算和决定类型,会带来很严重的性能损失
,这导致了 JavaScript 语言的运行效率比 C++或者 Java 都要低很多。 ###为什么这样会比静态类语言性能差
因为静态类型语言在编译时,就已经知道了参数的类型,并根据类型生成了本地代码
;所以运行的时候从本地代码中读取就比较快。
而 javascript 是动态类型语言,只有当运行的时候才去编译、运行,上面的工作才开始做,这样效率当然会比较低了。
阅读更多
web前后端漏洞分析与防御技巧--笔记|安全|面试-安全相关工具nodemon代替 node,启动的服务,如果修改后会自动编译启动,无需每次手动启动。
jspm前端包管理工具,npm 是 node 的包管理工具,服务端的。
XSS全称是:Cross Site Scripting,(跨站脚本攻击),为什么不叫 CSS,因为 CSS 是样式的缩写,cross ...
阅读更多
回顾冒泡算法|算法|算法刚开始学编程的时候就学了冒泡,所以一直觉的是很简单的东西,但你真的能随手写出来吗?真的还记得原理吗?
第一种实现这是根据核心思想写出来的,后来和书上的一对,写法不同,但是原理和结果是一样的。
123456789101112131415let arr = [1, 3, 6, 4, 5, 2, 4, 8 ...
阅读更多
《啊哈算法》纸盘游戏-小猫钓鱼-js版|算法|算法结论我的输出结果和书上不一致,在网上查了下,有的人士和我的结果一样,我把每一步都打印出来并看了结果,我的过程和结果是没问题的。
游戏规则
将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两人交替出牌 ...
阅读更多
快速排序算法-JavaScript版|算法|算法原理比如有一个这样的数组
1let arr1 = [4, 3, 1, 5, 2, 6, 5, 3, 8, 9, 6, 7];
从数组中找一个基准数,通常为第一个元素,比如 4,然后把数组中的所有大于基准数的都放到右边,小于的都放到左边。
第一轮结束后,虽然左边都是小于基准数的,右边都是大于基准数的 ...
阅读更多