typeof()返回传递给它的数据类型。它是操作符,因此()可有可无。
● "undefined"——如果这个值未定义;
● "boolean"——如果这个值是布尔值;
● "string"——如果这个值是字符串;
● "number"——如果这个值是数值;
● "object"——如果这个值是对象或null(空对象指针);
● "function"——如果这个值是函数;
instanceof 检测是什么类型对象var instanceof constructor
parseInt(值,基数(16进制或者别的))
>>>(无符号移位),右移(符号位补齐).===(全等,不做转化就相等,推荐使用)
JavaScript本身提供Date,String和Math三种对象。
频繁使用同样的String对象时,显式创建String效率会比较高。
Web开发包括行为层,表现层,结构层,内容层和业务层。
DOM两个重要的函数getElementById()按ID获取元素,getElementByTagName()按元素名获取元素。
父节点(parent)子节点(children)兄弟节点(sibling)
prototype向现有的对象中添加属性和方法。
addEventListener()添加任意数量的监听程序
DOM Event : onclick,onkeypress,onload,onunload.
defer脚本延迟执行
async异步加载页面其他内容。
CData片段可包含不需要解析的任意格式的文本内容。
//[CData[
脚本内容
//]]
JavaScript中通常有两种垃圾收集策略:标记清除(大部分浏览器都使用),引用计数(IE访问DOM元素时采用,回收机制与C++的智能指针类似。)
JavaScript中的类其实是引用类型,并不是真正的类
Array()数组对象
Array数组对象,push(),pop(),shift()(从数组头取出),unshift()(从数组头压入)
splice()最强大的数组方法。向数组中部插入项。接受参数起始位置,删除项,插入项。
迭代方法every(),filter(),foreach(),map(),some().
归并方法redu(),reduceRight()
创建正则表达式,构造函数RegExp();主要方法exec().
RegExp属性input ,lastMach ,lastParen ,leftContext ,multiline ,rightContext. 短属性名分别是$_ ,$& ,$+ ,$` ,$* , $'
call(),apply(),bind()函数。
boolean
number tofix(1),toexponential(1)=1.0e+1,toPrecious()(调用的是tofix(),或者toPrecious())
单体内置对象Global ,Math.
全局的变量和函数都是Global对象的属性和方法。
eval()最强大的ECMAScript函数
修改属性默认的特性,object.defineProperty().getter()获取属性值,setter()设置属性值。defineProperties()定义多个属性
属性默认特性configuation修改为false之后就改不回来了。
获取属性值特性getOwnPropertyDescriptor()
构造函数要以大写字母开头。通过new来调用。
每个函数都有一个prototype属性,是一个指针,指向原型对象。
创建类最常用的方式是组合构造函数模型和原型模式。
寄生组合式继承是最理想的继承范式。
javascript并没有块级的概念。
(function(){})()模仿块级作用域
!!相当于三目表达式
selector API level1两大核心方法querySelector()和querySelectorAll()可以通过document和element实例来调用
document.documentElement返回根节点(<html>)
检测浏览器是否支持某DOM LEVEL的事件document.implementation.hasFeature("事件集",版本).
事件委托是“事件处理程序过多”问题的解决方案,是DOM树中尽量最高的层次上添加一个事件处理程序。(事件需要能冒泡才可以)
DOM事件模拟,创建事件createEvent()触发事件dispatchEvent()
必填表单添加required.
<canvas>在页面创建一个区域(画布),然后使用JavaScript来动态绘制图案。