MDN 重新介绍JavaScript
基本数据类型
-
Number
- 不区分整数值和浮点数值,所有数字在 JavaScript 中均用浮点数值表示
- 字符转换成数字
-
parseInt()
&&parseFloat
, 转化的时候 -
+ "42" // 42
(单元运算符+
也可以把数字字符串转换成数值, 使用该方法,字符串中有不能被转化的字符,则会返回NaN
)
-
-
NaN
进行任何数学运算,结果也会是NaN
,isNaN()
用来判断是否是NaN
-
Infinity
&&-Infinity
,isFinite()
来判断是否是无穷值
-
String
-
null
&&undefined
-
null
可以理解成未定义的对象, 返回的类型是Object
-
undefined
可以理解成声明了对象, 但是未进行赋值, 返回的类型是undefined
-
-
Boolean
-
false
、0
、空字符串("")
、NaN
、null
和undefined
被转换为false
- 所有其他值被转换为
true
-
if
条件语句中会隐式转换
-
变量
- 声明方法: 使用关键字
var
,let
,const
-
let
语句声明一个块级作用域的本地变量,并且可选的将其初始化为一个值, (目前的理解是, 块级作用域以{}
来定义) -
const
允许声明一个不可变的常量, 这个常量在定义域内总是可见的 -
var
在整个函数作用域中都可见, (如果直接语句, 没有封装函数的, 则是全局可见,ES5
之前语句(block)没有作用域, 只有函数(function) 有作用域,ES6
后通过let
和const
创建块级作用域
-
运算符
-
+
- 可以用来连接
Number
和String
, 操作数都会被首先转换为字符串; - 通过与空字符串相加,可以将某个变量快速转换成字符串类型
- 可以用来连接
-
==
&&===
-
==
会进行类型自动转换, 比如'123' == 123 // true
-
===
不会进行类型转换,123 === "123"; // false
-
控制结构
for...of
-
for...in
(在循环中进行详细解析) -
switch...break
, 不要忘了加上break
对象 Object
-
JavaScript
中的对象可以简单理解成“名称-值”对 -
JavaScript
中的一切(除了核心类型,core object
)都是对象 -
“名称”部分是一个 JavaScript 字符串
-
“值”部分可以是任何 JavaScript 的数据类型——包括对象
-
声明对象:
-
var obj = new Object();
-
var obj = {};
// 对象字面量(object literal), 一般使用这种声明方法 -
可以对象字面量中再创建对象实例
var obj = { name: "Carrot", "for": "Max",//'for' 是保留字之一,使用'_for'代替 details: { color: "orange", size: 12 } }
-
-
访问对象属性新增对象属性:
-
通过链式(chain)表示方法进行访问
obj.name = "Simon" var name = obj.name; // bracket notation obj['name'] = 'Simon'; var name = obj['name']; // 可以使用变量来代替key var user = prompt('what is your key?') obj[user] = prompt('what is its value?')
-
数组
-
数组是一种特殊的对象:
-
key
是数字(下标) - 只能通过
[]
来访问
-
-
创建数组:
-
传统声明式方法:
var a = new Array(); a[0] = "dog"; a[1] = "cat"; a[2] = "hen"; a.length; // 3
-
数组字面量(array literal)
var a = ["dog", "cat", "hen"]; a.length; // 3
-
-
数组的长度(length) 是比数组最大索引值多一的数(数组的元素个数并不一定等于数组的长度)
var a = ["dog", "cat", "hen"]; a[100] = "fox"; a.length; // 101
网友评论