toString.call()引起的一些思考

toString作为全局方法时,挂载于window对象。作为最顶层的原型对象 Object.prototype 有着自己的 Object.prototype.toString 方法,另外,Array、String、Boolean、Function、Date等构造函数也也都部署了自己的toString方法。

为了方便下文的理解,再强调一下原型链的作用:读取对象的某个属性时,JavaScript引擎先寻找该对象本身的属性,如果找不到,就到它的原型去找,如果还是找不到,就到原型的原型去找,直到顶层原型对象 Object.prototype。如果一层一层到最顶层的还是找不到,则返回undefined。

More

JavaScript24点游戏算法

24点:棋牌类益智游戏,要求四个数字运算结果等于二十四!这个游戏用扑克牌更容易来开展。拿一副牌,抽去大小王后(初练也可以把J/Q/K也拿去),剩下1~10这40张牌(以下用1代替A)。任意抽取4张牌(称为牌组),用加、减、乘、除(可加括号,高级玩家也可用乘方开方运算)把牌面上的数算成24。每张牌必须且只能用一次。如抽出的牌是3、8、8、9,那么算式为(9-8)×8×3=24。

js实现任意4个整数的24算法:

More

JavaScript排序算法

排序算法作为老生常谈的话题,其实现方式多种多样,这里给出了我自己关于冒泡排序、选择排序、插入排序、合并排序、快速排序等5种排序的js代码实现,以便将来参考和在此基础上改进。

More

关于document.write引入第三方脚本问题

一般情况下,我们会选择异步方式调取js文件,但是某些场景又不得不使用同步方式来调用js。除了直接用script标签插入同步脚本,document.write也是一种选择。然而,chrome认为其会拖慢页面加载速度,牺牲用户体验。所以,新版chrome决定对用document.write注入第三方脚本的方式采取一些干预措施。

最近,可能也有人像我一样,看某些网页的时候,chrome控制台出现了下面的警告:

More