A re-introduction to JavaScript读后感(1)
这次算是认真的看完了一个关于JavaScript的文档,在之前的时候都是老师随意的教一些方法和框架的用法,没有认真的读完一篇全英文的文档,今天也算是达到了一个小目标,从头到尾读了一篇。在这里我想把这件事做个总结,也检验一下我学到了什么。
Overview
Javascript无非是一种面向对象的脚本语言,没有输入和输出的概念
常用的类型有
- Number
- String
- Boolean
- Function
- Object
- Function
- Array
- Date
- RegExp
- Symbol(new in ES2015
- null
- undefined
Numbers
数字在Javascript中使用的IEEE 754标准下的双精度64位,所以有个很有意思的现象在Javascript中没有整型。
同时JS也支持标准数学工具,使用Math;即可方便的使用其中的数学工具。 例如:
Math.sin(3.5)
还可以用parseInt() 函数将字符型转换为integer,例如
parseInt('123', 10); // 123
parseInt('010', 10); // 10
如果parseInt()函数不加后面的进制选择的话,对待的字符串就直接以其开头的字符来判断了,例如
parseInt('010'); // 8
parseInt('0x10'); // 16
或许想让二进制转到整型可以这样做,
parseInt('11', 2); // 3
也可以使用+来让字符串变为数字
+ '42'; // 42
+ '010'; // 10
+ '0x10'; // 16
这里有种特殊的值为NaN,起源于IEEE 754中无法表示的值,同时精度也达不到,例如
parseInt('hello', 10); // NaN
使用NaN做其他运算结果也为NaN
NaN + 5; // NaN
还有一个判断函数
isNaN(NaN); // true
JS内还含有两个特殊的值Infinity and -Infinity,例如
1 / 0; // Infinity
-1 / 0; // -Infinity
同样拥有判断函数
isFinite(1 / 0); // false
isFinite(-Infinity); // false
isFinite(NaN); // false
Strings
String 在Javascript中是Unicode字符集,更精确来说是一系列的UTF-16 code units 这里方便的使用legth属性来得出字符串的长度
'hello'.length; // 5
其他属性也有例如
'hello'.charAt(0); // "h"
'hello, world'.replace('world', 'mars'); // "hello, mars"
'hello'.toUpperCase(); // "HELLO"
其他类型
其他还有null和undefined,这两种可要注意区分,null代表没有值,而undefined则是代表一个未被初始化的值,理论上来说undefined是个常量。
还有true和false他们遵守着以下规则
- false, 0, empty strings (""), NaN, null, and undefined all become false.
- All other values become true.
可以利用 Boolean() 来进行判断
Boolean(''); // false
Boolean(234); // true
布尔操作和C和Java差不多,都有&&(与,||(或,!(非