数组 Array
var arr = [1, "2", undefiend, 3, 4, 5];
console.log(arr[0]) //- 取出数组的第0位 取值
arr[0] = "修改" //- 修改第0位 写入
length
获取数组的长度
arr.length
遍历数组
var arr = [1, 2, 3, 4, 5, 6];
for(var i = 0; i < arr.length; i ++) {
console.log(arr[i]) //- 取出数组每一位的值
arr[i] += 1 //- 数组每一位都+1
}
对象 Object
把一些有共同特性的数据放在一起,就是对象
var obj = {
// key键(属性名) : value值(属性值)
// value值中可以放任何类型的数据
name : "Tom",
age : 20,
job : "Teacher",
address: undefined
}
//- 取对象中的值
console.log(obj.name) //Tom
//- 赋值
obj.name = "Jimmy"
console.log(obj)
编程形式的区别
面向过程
机械思维,按照步骤
面向对象
符合人的思维方式
typeof操作符 typeof()
区分数据的类型
两种写法,括号或者空格隔开
typeof()
-
typeof 123
返回:number, string, boolean, object, undefined, function
var num = 123;
console.log(typeof(num)) //- Number
console.log(typeof(null)) //- Object
类型转换
显式类型转换
-
Number()
转换成数字类型
console.log(Number(false)) //- 0
console.log(Number(true)) //- 1
console.log(Number(undefined)) // NaN
-
praseInt()
转换成整数
console.log(praseInt(false)) //- NaN
console.log(praseInt(123.9)) //- 124
console.log(praseInt("123ABC")) //- 123
-
praseFloat()
转换成浮点数
console.log(praseFloat(123.9)) //- 123.9
console.log(praseFloat(123.9fdsa)) //- 123.9
-
string()
转换成字符串
console.log(string(123.9)) //- "123.9"
-
Boolean()
转换成布尔值
console.log(Boolean("")) //- false
-
toString()
转换成字符串
undefined
和null
不能使用toString
var txt = 123
var txt1 = txt.toString();
console.log(txt)
隐式类型转换
-
isNaN()
判断是不是NaN,先用Number()转换,再判断是不是NaN
console.log(isNaN("NaN")) //- true
console.log(isNaN("aac")) //- true
// Number("aac") ==> NaN
console.log(isNaN(null)) //- false
console.log(isNaN(undefined)) //- true
-
++ / --, + / -(一元正负)
隐式调用显式Number()
var a = "123";
a ++
console.log(a) //- 124
//- 先用Number(),把++前面的转换成数字
-
+
隐式调用显式string()
var a = "123"
a = a + 1
console.log(a) //- 1231
-
+ * / %
隐式调用显式Number()
var a = "1" * 1
console.log(a) //- 1
-
&& || !
隐式调用显式Boolean(),但返回的是值,而不是布尔值 < > <= >=
var a = "3" > 2 //- 隐式调用显式Number(),把字符串转换成数字
console.log(a) // true
== !=
undefined == null // - true
不发生类型转换
===
绝对等于
!==
绝对不等于