0
点赞
收藏
分享

微信扫一扫

JavaScript乐子大全(更新中)

在觉 2022-03-11 阅读 71

JavaScript乐子大全


这篇博文旨在为罗列js让人无语的特性。如果某天你在写代码时出现了令人费解的错误,或许你能在这里找到答案。

使用JavaScript

  • 由于没有BOM的标准可供遵守,因此每个浏览器的实现可能不尽相同,也就是说,同一个功能的函数可能在两个不同的浏览器中名称不同
  • js的版本情况大多数情况下取决于浏览器
  • HTML5的默认脚本语言是JavaScript
  • 带有src属性的script中不应该在添加代码,会被忽略
  • 把script tag放在<head>中可能会导致错误(准确来说,当你的script操作DOM但是却在DOM上面时,浏览器可能会先执行script再加载DOM,script找不到DOM当然会出错)
  • 在XHTML中,js中的小于号会被当做tag的开头
  • 如果某些上古代码在script代码两端加入HTML的注释,那可能是怕浏览器无法解析script……
  • 我在这篇推文中会尽量少用<script>,因为会被markdown解析成脚本标签……

JavaScript语法

  • 可以用拓展的unicode字母来用作变量名,比如Ã,Ç,如果你有同事,不建议你这么做
  • 通过"use strict"来开启严格模式,严格模式下JavaScript的执行结果可能和你熟悉的JavaScript大不相同
  • 如果省略分号,则由解析器确定语句结尾
  • 虽然js不是强类型语言,但是boolen,byte,short,int,long,float,double,char都是js的保留字
  • 如果一个变量你不定义就使用,那它会成为一个全局变量(这是非常危险的行为)

JavaScript数据类型

  • 未经初始化的默认值是undefined
  • 未声明的变量的类型也是undefined
  • null的类型是object
  • null==undefined //true
  • 八进制字面值在严格模式下是无效的
  • 0.1+0.2=0.30000000000000004 以此类推
  • NaN != NaN //NaN不等于任何值
  • NaN的类型是Number
  • 在ECMAScript 5中,parseInt已经不能解析parseInt
  • null和undefined没有toString方法,对他们使用toString会返回这两个值的字面量
举报

相关推荐

0 条评论