共计 3211 个字符,预计需要花费 9 分钟才能阅读完成。
\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 // 5
s.length = 3;
s.length // 5
s.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 // true
obj.p // undefined
Object.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 (对象) {语句;}
“