这是我参与「第五届青训营 」伴学笔记创作活动的第 19 天
JavaScript是一个面向对象的编程语言,默认被众多浏览器使用作为Web编程语言。 ECMAscript是JavaScript的特定标准。
基本语法
标识符
标识符:由一个字母开头的,后面可选择性跟随一个或者多个_、数字、字母,且不是关键字的组合。
标识符可被用作:变量、参数、属性、运算符、标记、语句。
注释
JavaScript有两种注释方案:\\和/**/,通常简易使用\\,因为后一种可能会导致错误。
数据类型
JavaScript的简单数据类型包含:数字、字符串、布尔值、null、undefined,函数、数组之类的都是对象,前面的简单数据类型也可以创建为对象。
数字
JavaScript只有一种数字类型:64位浮点类型。
函数
一段具有指定功能可以被调用执行的代码块。
对象
属性容器,有的具有方法。
字面量
字面量:按照指定规格创建新对象的表示法。 对象的属性名被当作字面量。
对象
对象的属性名可以是字符串或者合法的标识符,属性值可以是包括另一个对象字面量在内的任意表达式,函数也是可以的,对象的函数被称作方法。
要尽可能的少使用全局变量,这会引起全局变量污染,可能会因为名称冲突出现错误。 一种方法是创建一个全局变量作为容器容纳其它变量。
检索
如果想要使用对象里面的值,可以采用两种方法:对象[属性名]、对象.属性名。 也可以通过这种方法对对象的值进行更新。
引用
在把对象赋值给变量的操作都是这个变量对这个对象的引用,或者可以说是浅拷贝,任何对这个变量的更新都是对对象本身的更新。
原型
每个对象都连接一个原型(prototype),并继承它的属性。 我们可以通过为原型增加属性的方式让连接的对象默认继承这些属性。
枚举
可以使用for in循环来遍历枚举对象的属性,方法不会被枚举。
删除
可以用delete运算符顺出对象的属性。
函数
函数是一组可以被调用执行的代码块。
JavaScript的函数就是对象,原型为Function.prototype。
每个函数被创建时都会默认拥有this属性(这个函数所属对象的引用)和arguments属性(实参,类数组的对象)。
调用
函数可以通过()运算符表调用执行,此时控制权会转移到被调用的函数。
函数调用模式
此时的this被绑定到全局对象上。
方法调用模式
此时this被绑定到拥有此方法的对象上,可以通过this来访问此对象的属性。
构造器调用模式
用来和new关键字创建新的对象。
Apple调用模式
可以通过apply方法使对象把自己的属性传递到其它的对象的方法中来使用自己没有的方法。call与其类似。
参数
参数是函数字面量的重要组成部分。函数实际接受的参数被称作实参,调用传递的被称作形参。
当形参数大于实参时,多余的参数就会被加入的arguments(arrays-likes)对象中并可以被当作数组使用。
当小于时,缺少形参的实参就会为undefined,最好为其设置默认值。
异常
当函数运行出现问题时,可以自定义throw一个异常,这个异常可以被try catch的catch的从句捕获并终止程序。
闭包
函数内设置的变量和函数外的全局变量具有不同的作用域。
为了让变量作为函数的私有属性而不是作为全局变量,但又能起到同样的作用。
此时可以设计一个自调函数,这个函数会在设置完成之后自动执行。
执行包括定义一部分变量和返回具有一个或多个方法的对象(一个时也可以理解为返回一个表达式,此时这个变量变为函数)赋值给变量。此时这个变量可以被调用其中的方法,同时里面的变量也没有消失,作为私有变量而存在。
类
类是用来创建函数的模板,在es6被引入。
此时JavaScript和其它的面向对象编程语言可以用class来创建对象而不是用原型了。