JavaScript输出
使用window.alert()
1 | <!DOCTYPE html> |
使用innerHTML
写入Html元素
如需访问 HTML 元素,JavaScript 可使用 document.getElementById(id)
方法。
1 | <!DOCTYPE html> |
console.log()
写入控制台
1 | <!DOCTYPE html> |
使用document.write()
写入Html元素
1 | <!DOCTYPE html> |
但是在 HTML 文档完全加载后使用 document.write()
将删除所有已有的 HTML,所以只用于测试
什么时候产生NaN
表达式计算
一个表达式中如果有减号 (-)、乘号 (*) 或 除号 (/) 等运算符时,JS 引擎在计算之前,会试图将表达式的每个分项转化为 Number 类型(使用 Number(x) 做转换)。如果转换失败,表达式将返回 NaN 。
1 | 100 - '2a' ; // NaN |
类型转换
直接使用 parseInt,parseFloat 或 Number 将一个非数字的值转化为数字时,表达式返回 NaN ,但是对于 数字+字符的值,其转化结果会有所不同,Number 转换的是整个值,而不是部分值;parseInt 和 parseFloat 只转化第一个无效字符之前的字符串。 另外,一元加操作符也可以实现与 Number 相同的作用。 :
1 | 'abc' - 3 // NaN |
三个标准对象
Date
Date
对象用来表示日期和时间。Date
常用的一些函数:
1 | var now = new Date();//获取系统当前时间 |
注意 JavaScript
的Date
对象月份值从0开始,牢记0=1月,1=2月,2=3月,……,11=12月。
Json
首先Json是一种数据传输的格式。
其次把任何JavaScript对象变成JSON,就是把这个对象序列化成一个JSON格式的字符串。对应的如果我们收到一个JSON格式的字符串,只需要把它反序列化成一个JavaScript对象,就可以在JavaScript中直接使用这个对象了。
序列化是通过JSON.stringify(JavaScirpt的对象)
来实现的。这个函数有三个参数,第一个就是我们要序列化的JavaScript的对象,第二个参数是用来控制如何筛选对象的键值,比方可以传函数,传要取出来的属性,第三个是控制的转换后的格式。如果我们还想要精确控制如何序列化一个对象的话如xiaoming
,可以给xiaoming
定义一个toJSON()
的方法,直接返回JSON应该序列化的数据:
1 | var xiaoming = { |
反序列化是通过用JSON.parse()
把它变成一个JavaScript对象,同时这个函数还可以接收一个函数作为参数,用来转换解析出的属性:
1 | var obj = JSON.parse('{"name":"小明","age":14}', function (key, value) { |
RegExp(待补)
面向对象
创建对象
JavaScript对每个创建的对象都会设置一个原型,指向它的原型对象。形成一个原型链,当我们要访问一个对象的一个属性的时候,就会通过这个原型链查找,如果一直找到Object.prototype
对象,都还没有找到,就只能返回undefined
。
比方说我们创建了一个Array对象,我们可以得到其对应的原型链如下:
1 | var arr = [1, 2, 3]; |
我们这个arr
对象,能调用arr,Array.prototype,Object.prototype
上定义的所有的方法。
构造函数,除了直接用{...}
创建一个函数之外,还可以通过构造函数创建对象
1 | function Student(name) { |
这是一个普通函数,但是在JavaScript中,可以用关键字new
来调用这个函数,并返回一个对象,注意,如果不写new
,这就是一个普通函数,它返回undefined
。
class继承
在ES6
开始引入了class
这个概念,就很类似Java
的class
对象了,例如:
1 | class Student { |
继承的话和Java
也很像,利用extends
关键字
1 | class PrimaryStudent extends Student { |
错误处理
错误捕获
这个和Java
也很像,利用try ... catch
捕获。
如果代码发生了错误,又没有被try ... catch
捕获,那么,程序执行流程会跳转到哪呢?
如果在一个函数内部发生了错误,它自身没有捕获,错误就会被抛到外层调用函数,如果外层函数也没有捕获,该错误会一直沿着函数调用链向上抛出,直到被JavaScript引擎捕获,代码终止执行。
利用try ... catch
捕获错误
1 | function main(s) { |