Day6
1、=
作用是将一个表达式的值赋给一个左值。一个表达式或者是一个左值,或者是一个右值。所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们用变量作左值,还可以看到,指针和引用也可以作左值。
2、==
当左边的内容与右边的内容相同时,返回1。其余时候返回0。==是判断两个值大小是否相同的运算符。
三、在程序中得到的结果不同
1、=
例如a=1,就是将1赋值给变量a。
2、==
返回值为布尔型,例如a==b是判读变量a和b的值是否相等,如果a和b相等,返回值为1;如果a和b不相等,返回值为0。
将确定的数值赋给变量的语句叫做赋值语句。各程序设计语言有自己的赋值语句,赋值语句也有不同的类型。所赋“值”可以是数字,也可以是字符串和表达式。
注意很多语言都使用“等于号”(即“=”)来作为赋值号,所以可能和和平时的理解不同,在使用的时候应予以注意。
(一)Array对象
1、concat()
例:var arr1=arr. concat (1,2,3)
var arr1=arr. concat (arr) 表示把几个数组或元素合并成一个数组
2、join()
例:var str= arr. join( ) 设置分隔符连接数组元素为一个字符串
3、pop()
例:arr. pop() 删除数组尾部一个元素
var a=arr. pop( ) 删除并返回被删除的元素;
4、shift()
例:arr. shift( ) 删除数组头部第一个元素
var a=arr. shift( ) 删除并返回被删除的元素
5、slice(start,end)
例:arr. slice ( ) 截取复制,返回数组中的一段,(从哪个元素开始截取,到哪个元素之前结束)
6、splice()
例:arr. splice( ) 删除,插入,替换,(从哪个元素开始删除,删除几个元素,要插入的元素)
7、push()
例:var a=arr. push( ) 在数组尾插入元素,返回新的长度
8、unshift( )
例:var a=arr. unshift( ) 在数组头部插入元素,并返回新的长度
9、indexOf(查找内容,从什么位置开始查找)
lastindexOf(查找内容,倒着从什么位置开始查找)
查找数组中是否有某项,有的话返回该项的所引,没有话返回-1
10、forEach( ) 遍历 没有返回值
例:arr. forEach(function (item, index, arr ){
})
(数组元素,数组下标,数组本身)
11、filter 过滤元素
例: var arr1=arr. filter( function (item, index, arr ){
})
返回新的数组,对数组进行过滤
12、map
例:arr. map( function (item, index, arr ){
})
返回新的数组,并改变数组
13、some、every
例:arr. some( function (item, index, arr ){
})
arr. every( function (item, index, arr ){
})
都返回布尔值,some 有一个符合就是true,every有一个不符合就是false
14、reduce
例:arr. reduce( function (value,item, index, arr ){
},初始值)
返回value,求和时使用
二、Math对象
Math.floor() 向下取整
Math.ceil() 向上取整
Math.random() 取0-1之间的随机小数
Math.round() 四舍五入
Math.abs() 取绝对值
Math.pow(x,y) x的y次幂
Math.sqrt() 开平方
Math.max() 取最大值
Math.min() 取最小值
三、Date对象
date. getFullYear( ) 获取年
date. getMonth()+1 获取月
date. getDate( ) 获取日
date. getDay( ) 获取星期
date. getHours( ) 获取小时
date. getMinutes( ) 获取分钟
date. getSeconds( ) 获取秒
date. getTime( ) 获取1970年1月1日0时0分0秒到现在的毫秒数
var arr = ["hello",true,"world",2,5,"abc"];
console.log(arr) //["hello", true, "world", 2, 5, "abc"]
console.log(arr.length) // 6
// 增:
console.log(arr[0]) //hello
console.log(arr[arr.length-1]) //abc
console.log(arr[arr.length]) //undefined
arr[arr.length] = "hahahah";
console.log(arr[10]) //undefined
arr[10] = "heiheihie"
console.log(arr) //["hello",true,"world",2,5,"abc","hahahah",empty × 3,"heiheihie"]
console.log(arr[7]) //undefined
console.log(arr[8]) //undefined
console.log(arr[9]) //undefined
// 删:
console.log(arr.length) //11
arr.length = 4;
console.log(arr) //["hello", true, "world", 2]
// 改:
arr[1] = "qwe"
arr[3] = 123
console.log(arr) // ["hello", "qwe", "world", 123]
// // 查:
for(var i=0;i<arr.length;i++){
console.log(arr[i]) //hello
//qwe
//world
//123
}
var arr = ["hello",true,123,"world"]
arr.push(456,"你好");
console.log(arr);
var arr = ["hello",true,123,"world"]
arr.push(456,"你好");
arr.unshift(789);
console.log(arr);
(2)数组元素的删除
1.pop()删除并返回数组的最后一个元素
var arr = ["hello",true,123,"world"]
arr.pop();
console.log(arr)
2.shift()删除并返回数组的第一个元素
var arr = ["hello",true,123,"world"]
arr.pop();
arr.shift();
console.log(arr);
(3)数组元素的其他方法
1.替换arr.splice(m,n,date1,date2...)从m开始,共n个,替换data
var arr = ["hello",true,123,"world"]
arr.splice(1,2)
arr.splice(1,2,"admin")
arr.splice(2,0,"admin")
arr.splice(2,0,"admin","a","b",345)
console.log(arr)
2截取arr.slice(m,n);可从已有的数组中返回选定的元素。该方法接受两个参数slice(start,end),strat为必选,表示从第几位开始;end为可选,表示到第几位结束(不包含end位),省略表示到最后一位;start和end都可以为负数,负数时表示最后一位开始算起。
var arr = ["hello",true,123,"world"]
var a = arr.slice(1,3)
console.log(a)
var a = arr.slice(1)
console.log(a)
3reverse()反转数组,返回结果
var a=arr.reverse();
console.log(a)
4sort()按字符规则排序,返回结果
var a=arr.sort();
console.log(a)
5valueOf()返回数组对象的原始值
var a=arr.sort();
var a=arr.valueOf();
console.log(a)
6toString()转换为字符串并返回
var arr = ["hello",true,123,"world"]
var a=arr.toString();
console.log(a)
7join()根据指定分隔符将数组中的所有元素放入一个字符串,并返回这个字符串
join(str);参数可选,默认为‘,’,以传入的字符作为分隔符
var arr = ["hello",true,123,"world"]
var a=arr.join("-");
console.log(a)
8.concat()用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
concat;所有参数可选,要合并的数据;data为数组时,将data合并到原数组;data为具体数据时直接加到原数组尾部;省略时创建原数组的副本。
var arr = ["hello",true,123,"world"]
var a=arr.concat("你好","未来");
console.log(a)
9.indexOf()根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在的数据,返回-1.该方法是查询方法,不会数组产生改变。
var arr = ["hello",true,123,"world"]
var a=arr.indexOf(123);
console.log(a)
10.forEach()ES5新增方法,用来遍历数组,该方法没有返回值,forEach接受的回调函数会根据数组的每一项 执行,该回调默认有三个参数,分别为;遍历到数据的数组。对应的索引,数组自身。
var arr = ["hello",true,123,"world"]
var a = arr.forEach(function(value,index,self){
console.log(value + "--" + index + "--" + (arr === self));
})
console.log(a)
11.map()同forEach功能,2.map的回调函数会执行结果返回, 最后map将所有回调函数的返回值组成新数组返回。
var arr = ["hello",true,123,"world"]
var a = arr.map(function(value,index,self){
console.log(value + "--" + index + "--" + (arr === self));
})
var a = arr.map(function(value,index,self){
return "Hi"+value;
})
console.log(a)
console.log(arr)
12filter() 1.同forEach功能;2.filter的回调函数需要返回布尔值,当为true时,将本次数组的数据返回给filter,最后filter将所有回调函数的返回值组成新数组返回(此功能可理解为“过滤”)。默认有三个参数,分别为value,index,self。
var arr = ["hello",true,123,"world"]
var a = arr.filter(function(value,index,self){
console.log(value + "--" + index + "--" + (arr === self));
})
var a = arr.filter(function(value,index,self){
return value.length>3;
})
console.log(a)
console.log(arr)
13
every () 判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true。every()接收一个回调函数作为参数,这个回调函数需要有返回值,every(callback);callback默认有三个参数,分别为value,index,self。
当回调函数的返回值为true时,类似于forEach的功能,遍历所有;如果为false,那么停止执行,后面的数据不再遍历,停在第一个返回false的位置。
当回调函数的返回值为true时,every的返回值为true,只要有一个回调函数的返回值为false,every的返回值为false
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.every(function(value,index,self){
return value.length > 3;
})
console.log(a); //false
//demo2:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.every(function(value,index,self){
return value.length > 2;
})
console.log(a); //true
14 some() 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。some()接收一个回调函数作为参数,这个回调函数需要有返回值,some(callback);callback默认有三个参数,分别为value,index,self。因为要判断数组中的每一项,只要有一个回调函数返回true,some都会返回true,所以与every正好相反,当遇到一个回调函数的返回值为true时,可以确定结果,那么停止执行,后面都数据不再遍历,停在第一个返回true的位置;当回调函数的返回值为false时,需要继续向后执行,到最后才能确定结果,所以会遍历所有数据,实现类似于forEach的功能,遍历所有。
与every相反,只要有一个回调函数的返回值都为true,some的返回值为true,所有回调函数的返回值为false,some的返回值才为false
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
return value.length > 3;
})
console.log(a); //true
//demo2:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
return value.length > 4;
})
console.log(a); //false
15.reduce() 从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值。reduce()接收一个或两个参数:第一个是回调函数,表示在数组的每一项上调用的函数;第二个参数(可选的)作为归并的初始值,被回调函数第一次执行时的第一个参数接收。
reduce(callback,initial);callback默认有四个参数,分别为prev,now,index,self。
callback返回的任何值都会作为下一次执行的第一个参数。
如果initial参数被省略,那么第一次迭代发生在数组的第二项上,因此callback的第一个参数是数组的第一项,第二个参数就是数组的第二项。
document.write和innerHTML
主要区别:document.write是直接将内容写入页面的内容流,会导致页面全部重绘,innerHTML将内容写入某个DOM节点,不会导致页面全部重绘
下面举两个例子说明,第一个例子使用write()方法,第二个例子使用innerHTML
例子一:页面有初始内容,点击页面中的按钮向页面中通过document.write()方法写入内容,会发现原先的初始内容消失了,整个页面只剩下了通过write()方法写入的内容。原因是整个页面进行了重绘
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
初始内容
<button onclick="fun()" >按鈕</button>
<script>
function fun() {
document.write("write内容");
}
</script>
</body>
</html>
举例二:页面有初始内容,在初始内容后面给定一个节点,通过innerHTML向这个节点写内容,初始内容不消失,通过innerHTML新增加的内容准确的显示在节点位置
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
初始内容<a id="p"></a>
<button onclick="fun()">按钮</button>
<script>
function fun() {
document.getElementById("p").innerHTML="新增加的innerHTML内容";
}
</script>
</body>
</html>

浙公网安备 33010602011771号