do while
do{
循环语句
}while(条件表达式)
先执行在判断 不管条件是否满足 第一次肯定会执行的
for循环
for(初始化条件;条件判断;条件更新){
循环语句
}
嵌套循环
for (var i = 1; i <= 5; i++) {
for(var j = 1; j <= 5; j++){
document.write("i="+i+"j="+j)
}
document.write("<br>")
}
对象:存储数据的容器
存储形式是以key:value 键值对 的形式
以构造函数的形式创建一个对象
对象就是一个容器 返回的数据类型是Object
对象正宗的写法 属性是字符串
如果说对象中没有该属性返回的也是undefined
第一种方案:
var o = new Object();
添加属性
o.gender = "男";
修改属性
o.gender = "女";
删除对象中的属性
delete o.gender;
使用属性
console.log(o.gender);
console.log(o);
第二种方案:
var o = {
name:'李四',
age:14,
gender:'男'
}
对象的循环 枚举对象
for(var 保存属性名的变量 in 需要循环的对象){}
for(var key in o){
console.log(o[key])
}
数组
存储数据的 通过下标的形式进行存储的起始下标是0
typeof 返回数据类型是object
1.创建一个数组
var arr = new Array()
往数组中添加数据
arr[0] = "张三";
arr[1] = "李四";
arr[2] = "王五";
通过下标来修改数据
arr[2] = "赵六";
如果说往后面添加 中间没有 那么就是留空
arr[7] = "田七"
通过length属性来查看数组的长度
console.log(arr.length)
获取数组中的数据
console.log(arr[7])
数组中对应的位置没有放东西那么就是undefined
2.数组创建的参数 直接把数组的长度定义成9
var arr = new Array(9);
3.表示的是每一个数据成为数组的指定下标项
var arr = new Array(10,20,30,40)
字面量的形式创建数组
var arr = ["张三",'李四',,,,,'王五']
数据和对象内部存放
对象中的属性值可以是任何数据类型
var phone = {
id:1000,
name:'iphone8',
color:'red',
price:2000,
a:[1,2,3,4,5]
}
console.log(phone.a[2])
对象中的值可以是任何数据类型
var arr = [true,undefined,null,phone,["张三",'李四','王五']]
console.log(arr)
console.log(arr[4][1])
// 数组中的值还是数组 称该数字为二维数组
var arr = [[1,2,[3,4,5]],['张三','李四'],['a','b']]
判断是否是数组
方案一
instanceof 如果是数组返回true 不是数组返回false
console.log(arr instanceof Array)
console.log(arr1 instanceof Array)
方案二:
constructor 如果是数组返回true 不是数组返回false
console.log(arr.constructor === Array)
console.log(arr1.constructor === Array)
方案3:
arr.__proto__ === Array.prototype 如果是数组返回true 不是数组返回false
console.log(arr.__proto__ === Array.prototype)
console.log(arr1.__proto__ === Array.prototype)
方案4:
Array.prototype.isPrototypeOf(arr)
如果是数组返回true 不是数组返回false
console.log(Array.prototype.isPrototypeOf(arr))
console.log(Array.prototype.isPrototypeOf(arr1))
方案5:
Array.prototype.toString.call(arr) === [object Array]
如果是数组返回true 不是数组返回false
console.log(Object.prototype.toString.call(arr) === "[object Array]")
console.log(Object.prototype.toString.call(arr1) === "[object Array]")
方案6:使用推荐这种
Array.isArray(arr)
如果是数组返回true 不是数组返回false