参考文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/A_re-introduction_to_JavaScript
一、JavaScript概览
JS是一种面向对象的动态语言,它包含类型、运算符、标准内置(built-in)对象和方法。JS与Java、C比较的两个主要区别是(1)JS不支持类,类这一概念在JS中通过对象原型(object prototype)得到延续(有关ES6类的内容可以参考Classes的相关文档,链接为https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Classes)
(2)JS中函数也是对象,js允许函数在包含可执行代码的同时,能像其他对象一样被传递。
二、JS类型
包含以下类型
- Number(数字)
- String(字符串)
- Boolean(布尔)
- Symbol(符号)第六版新增
Object(对象)
。Function(函数)
。Array(数组)
。Date(日期)
。RegExp(正则)Null(空)
- Undefined(未定义)
JavaScript 还有一种内置Error(错误)类型,以后介绍
三、数字类型
JS采用“IEEE 754 标准定义的双精度64位格式”(double-precision 64-bit format IEEE 754 values)表示数字。JS不区分整数值和浮点数值。所以在JS中均用浮点数值表示。
js支持标准的算术运算符,包含加、减、取模(或取余)等。另外js中有一个内置对象Math,用于处理更多的数学函数和常数。
例如:Math.PI*(r+r);
Math.sin(3.5);
还有一个内置的函数parseInt()可以将字符串转换成整型,
注:js2013版之前的parseInt(“0123”)返回的数值为8;这是因为字符串以数字 0 开头,*parseInt()函数会把这样的字符串视作八进制数字;同理,0x开头的字符串则视为十六进制数字。*
单元运算符+也可以实现将字符串类型转换成数值!
这里写图片描述
另一个内置函数parseFloat(),解析浮点数字符串,与parseInt()的区别是parseFloat()只解析十进制的。
内置函数 isNaN() 来判断一个变量是否为 NaN
内置函数 isFinite() 来判断一个变量是否是一个有穷数
如果类型为Infinity, -Infinity 或 NaN则返回false:
*备注: parseInt() 和 parseFloat() 函数会尝试逐个解析字符串中的字符,直到遇上一个无法被解析成数字的字符,然后返回该字符前所有数字字符组成的数字。使用运算符 “+” 将字符串转换成数字,只要字符串中含有无法被解析成数字的字符,该字符串都将被转换成 NaN。
四、字符串
JavaScript 中的字符串是一串Unicode 字符序列。更准确地说,它们是一串UTF-16编码单元的序列,每一个编码单元由一个 16 位二进制数表示。每一个Unicode字符由一个或两个编码单元来表示。
JS中字符串也可以像js中对象一样使用字符串,它也有方法(methods),能操作字符串和获取字符串的信息。
五、其他类型
JS中null和undefined的区别:
null表示一个空值(non-value),必须使用null关键字才能访问,undefined表示未定义类型的对象,表示一个未初始化的值,JavaScript 允许声明变量但不对其赋值,一个未被赋值的变量就是 undefined 类型。还有一点需要说明的是,undefined 实际上是一个不允许修改的常量。
Boolean类型
JavaScript 按照如下规则将变量转换成布尔类型:
- false、0、空字符串(“”)、NaN、null 和 undefined 被转换为 false
- 所有其他值被转换为 true
也可以使用 Boolean() 函数进行显式转换:
六、变量
声明一个对象使用关键字var
var a;
如果声明了一个变量却没有对其赋值,那么这个变量的类型就是 undefined。
注:JavaScript 与其他语言的(如 Java)的重要区别是在 JavaScript 中语句块(blocks)是没有作用域的,只有函数有作用域。因此如果在一个复合语句中(如 if 控制结构中)使用 var 声明一个变量,那么它的作用域是整个函数(复合语句在函数中)。 但是从 ECMAScript Edition 6 开始将有所不同的, let 和 const 关键字允许你创建块作用域的变量。
七、运算符
JavaScript的算术操作符包括 +、-、*、/ 和 % ——求余(与模运算不同)。赋值使用 = 运算符,此外还有一些复合运算符,如 += 和 -=,它们等价于 x = x op y。
+操作符还可以连接字符串;
可以看出和空字符串相加,可以将数字转换成字符串
比较操作符使用 <、>、<= 和 >=,==
js还提供了位操作符。
八、结构控制
- if…else…
- while
- do-while
- for()
- &&和||
- (a>b)?a:c
- switch