一、函数的封装调用
1.先声明函数
render :渲染函数 index:索引、参数
2.function render(index)
3.获取触发事件的标签对象对应的数据
4.遍历数据中心的属性值数组
5.创建标签
6.渲染标签
7.添加标签
二、遍历数据(in 和 of 的区别)
1.for in 循环遍历的得到的是索引:for(var idx in data)
2.根据索引取出数组中对应的数据:var 自定义的变量=data[idx]
三、字符串常用函数
1.字符串类型,字面量声明了一个字符串对象
2.字符串中嵌套双引号:如 var s2=hello"世界" var s3=“hello\”世界、“”
3.字符串常用函数
(1)startsWith 判断字符串是否为某个字符开头,是返回true,不是返回false
(2)endsWith 判读字符串是否为某个字符结尾,是返回true,不是返回false
(3)字符串中每个字符有自己的下标索引,索引从0开始,依次+1
(4)substr():(截取开始的索引,向后截取的长度),返回一个新的字符串对象
(5)substring():截取开始的索引,截取结束的索引(不包含),返回结果同上
(6)split():分割字符串,可以指定通过哪些字符进行分割,返回一个数组对象,数组中存放的就是分割后的字符串
分割时传入一个空字符串,会将字符串中每一个字符进行分割
(7)如果不是一个纯数字参与运算,得到的就是NAN
(8)indexOf:获取字符在字符串中的索引,若找到返回索引,找不到返回-1
(9)search():用于查找字符在字符串中的索引,若找到返回索引,找不到返回-1
四、数组常用函数
1.js中的内置对象类型:Array数组
2.push()函数:向数组的末尾添加一条数据
3.pop()函数:用于删除数组中的最后一个元素,返回值就是元素
栈结构:先进后出,后进先出,只有一个入口,同时也是出口
push() 和 pop() 就是一对栈(stack)操作
4.unshift() 在数组最前面添加一条数据
5.shift()删除数组中最前面的一条数据,返回值就是删除的数据
unshift()和 shift()也是一对栈操作
先进先出,后进后出
6.splice()用于向数组中添加或删除指定位置的数据,返回值就是删除的元素组成的新数组对象
方法:(1)要删除数据的开始索引。(2)要删除元素的个数,(3)删除后所替换的新数据(可省略)
7.slice:(1)开始截取的索引,结束截取的索引(不含),用于数组截取。返回的就是截取出的新数组 ,(2)第二参数可以写成负值,表示截取到倒数第n个数据,(3)第一个参数必须小于第二个参数
(4)截取数据并不是删除,只是引用
(5)indexOf()获取指定数据在数组中的索引位置,如数据不存在返回-1
(6)join()用于将数组中元素拼接成一个字符串,返回拼接后的字符串默认使用
(7)将一个数组和另一个数组进行合并,返回的就是合并好的数组
五、对象的属性和函数
1.Object:对象类型
2.Array:js中的数组类型
3.new Array()通过构造函数创建数组对象
例:
通过构造函数创建对象:var people = new Object()
给对象添加属性:people.name=“张三”
给对象添加函数:people.run=function(){}
console.log(this):在对象函数中,this指向了执行函数的对象,这里值得就是people
4.对象函数想执行,必须由对象调用
例:people.run()
5.对象函数不要互相调用,会造成死循环
6.可以通过this获取当前对象的属性
7.在全局作用域下声明的函数和变量都是被添加到window对象上的,如果要使用window对象属性,window可以省略不写
六、组件化思想
<div id="box"></div>
<div id="home">
</div>
<script src="js/nav.js"></script>
<script src="js/home.js"></script>
<script>
// 渲染导航
navObj.render()
// 渲染家居模块
homeObj.render()
</script>
js部分:
var navObj = {
originData:{
"name": "热门",
"contents":[
"小米手机",
"红米手机",
"智能家居",
"小米周边"
]
},
// 渲染页面
render: function(){
for (var name of this.originData.contents){
var section = document.createElement("section")
section.innerText = name
document.getElementById("box").appendChild(section)
}
}
}
/---------------------------------------------------
var homeObj = {
originData: {
"name": "家居",
"contents": [
"小米拖地机器人",
"小米智能音箱",
"小米智能冰箱"
]
},
render: function(){
// 解析数据 渲染标签
for (var name of this.originData.contents){
var section = document.createElement("section")
section.innerText = name
document.getElementById("home").appendChild(section)
}
}
}
七、变量的类型判断
1.typeof 运算符:获取变量的类型,返回结果为(number、string、boolean)
number:数字、 string:字符串、boolean:布尔值
例:var num= 10 var typeof num
2. instanceof 实例(对象):判断对象是否为某种类型,是返回true,不是返回false