\1. JavaScript 程序的执行单位为行(line),也就是一行一行地执行。个别状况下,每一行就是一个语句。
\2. 如果只是申明变量而没有赋值,则该变量的值是undefined。
3.三元运算符
JavaScript 还有一个三元运算符(即该运算符须要三个运算子)?:,
也能够用于逻辑判断。
(条件) ? 表达式1 : 表达式2
下面代码中,如果“条件”为true,则返回“表达式1”的值,否则返回“表达式2”的值。
var even = (n % 2 === 0) ? true : false;
\4. break语句和continue语句都具备跳转作用,能够让代码不按既有的程序执行。
break语句用于跳出代码块或循环。
continue语句用于立刻终止本轮循环,返回循环构造的头部,开始下一轮循环。
5.JavaScript 的数据类型,共有六种
(1)数值(number):整数和小数(比方1和3.14)。
(2)字符串(string):文本(比方Hello World)。
(3)布尔值(boolean):示意真伪的两个非凡值,即true(真)和false(假)。
(4)undefined:示意“未定义”或不存在,即因为目前没有定义,所以此处临时没有任何值。
(5)null:示意空值,即此处的值为空。
(6)对象(object):各种值组成的汇合
6.JavaScript 有三种办法,能够确定一个值到底是什么类型。
(1)typeof运算符
数值、字符串、布尔值别离返回number、string、boolean。
typeof 123 // "number"
typeof '123' // "string"
typeof false // "boolean"
(2)instanceof运算符
(3)Object.prototype.toString办法
7.布尔值代表“真”和“假”两个状态。“真”用关键字true示意,“假”用关键字false示意。布尔值只有这两个值。
下列运算符会返回布尔值:
前置逻辑运算符: ! (Not)
相等运算符:===,!==,==,!=
比拟运算符:>,>=,<,<=
8.parseInt()
(1)根本用法
parseInt办法用于将字符串转为整数。
parseInt('123') // 123
如果parseInt的参数不是字符串,则会先转为字符串再转换。
parseInt(1.23) // 1
// 等同于
parseInt('1.23') // 1
如果字符串的第一个字符不能转化为数字(前面跟着数字的正负号除外),返回NaN。
parseInt('abc') // NaN
parseInt('.3') // NaN
parseInt('') // NaN
parseInt('+') // NaN
parseInt('+1') // 1
(2)进制转换
parseInt办法还能够承受第二个参数(2到36之间),示意被解析的值的进制,返回该值对应的十进制数。默认状况下,parseInt的第二个参数为10,即默认是十进制转十进制。
parseInt('1000') // 1000
// 等同于
parseInt('1000', 10) // 1000
9.parseFloat()
parseFloat办法用于将一个字符串转为浮点数。
parseFloat('3.14') // 3.14
10.isNaN()
isNaN办法能够用来判断一个值是否为NaN。
isNaN(NaN) // true
isNaN(123) // false
11.isFinite()
isFinite办法返回一个布尔值,示意某个值是否为失常的数值。
isFinite(Infinity) // false
isFinite(-Infinity) // false
isFinite(NaN) // false
isFinite(undefined) // false
isFinite(null) // true
isFinite(-1) // true
除了Infinity、-Infinity、NaN和undefined这几个值会返回false,isFinite对于其余的数值都会返回true。
12.本义
反斜杠(\)在字符串内有非凡含意,用来示意一些特殊字符,所以又称为本义符。
须要用反斜杠本义的特殊字符,次要有上面这些。
\0
:null(\u0000
)\b
:后退键(\u0008
)\f
:换页符(\u000C
)\n
:换行符(\u000A
)\r
:回车键(\u000D
)\t
:制表符(\u0009
)\v
:垂直制表符(\u000B
)\'
:单引号(\u0027
)\"
:双引号(\u0022
)\\
:反斜杠(\u005C
)13.字符串与数组
字符串能够被视为字符数组,因而能够应用数组的方括号运算符,用来返回某个地位的字符(地位编号从0开始)。
var s = 'hello';s[0] // "h"s[1] // "e"s[4] // "o"// 间接对字符串应用方括号运算符'hello'[1] // "e"
14.length 属性
length
属性返回字符串的长度,该属性也是无奈扭转的。
var s = 'hello';s.length // 5s.length = 3;s.length // 5s.length = 7;s.length // 5
下面代码示意字符串的length
属性无奈扭转,然而不会报错。
15.对象(object)是 JavaScript 语言的外围概念,也是最重要的数据类型。
什么是对象?简略说,对象就是一组“键值对”(key-value)的汇合,是一种无序的复合数据汇合。
var obj = { foo: 'Hello', bar: 'World'};
16.键名
对象的所有键名都是字符串(ES6 又引入了 Symbol 值也能够作为键名),所以加不加引号都能够。下面的代码也能够写成上面这样。
var obj = { 'foo': 'Hello', 'bar': 'World'};
17.属性的读取
读取对象的属性,有两种办法,一种是应用点运算符,还有一种是应用方括号运算符。
var obj = { p: 'Hello World'};obj.p // "Hello World"obj['p'] // "Hello World"
18.属性的赋值 #
点运算符和方括号运算符,不仅能够用来读取值,还能够用来赋值。
var obj = {};obj.foo = 'Hello';obj['bar'] = 'World';
19.属性的查看
查看一个对象自身的所有属性,能够应用Object.keys
办法。
var obj = { key1: 1, key2: 2};Object.keys(obj);// ['key1', 'key2']
20.属性的删除:delete 命令 #
delete
命令用于删除对象的属性,删除胜利后返回true
。
var obj = { p: 1 };Object.keys(obj) // ["p"]delete obj.p // trueobj.p // undefinedObject.keys(obj) // []
21.属性是否存在:in 运算符
in
运算符用于查看对象是否蕴含某个属性(留神,查看的是键名,不是键值),如果蕴含就返回true
,否则返回false
。它的右边是一个字符串,示意属性名,左边是一个对象。
var obj = { p: 1 };'p' in obj // true'toString' in obj // true
in
运算符的一个问题是,它不能辨认哪些属性是对象本身的,哪些属性是继承的。就像下面代码中,对象obj
自身并没有toString
属性,然而in
运算符会返回true
,因为这个属性是继承的。
这时,能够应用对象的hasOwnProperty
办法判断一下,是否为对象本身的属性。
var obj = {};if ('toString' in obj) { console.log(obj.hasOwnProperty('toString')) // false}
22.with 语句
with
语句的格局如下:
with (对象) { 语句;}
``