1-“==”和“===”的区别、
==用于一般比较,===用于严格bai比较,==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flase。
举例说明:
"1" == true类型不同,"=="将先做类型转换,把true转换为1,即为 "1" == 1;此时,类型仍不同,继续进行类型转换,把"1"转换为1,即为 1 == 1。
1.如果比较:"1" === true 左侧为字符型,右侧为bool布尔型或int数值型,左右两侧类型不同,结果为false;
2.如果比较: 1 === 1 左侧为int数值型,右侧为int数值型,左右两侧类型相同,数值大小也相同,结果为true;
3.如果比较: 1 === 2 左侧为int数值型,右侧为int数值型,左右两侧类型相同,但数值大小不同,结果为false。
"==" 只要求值相等; "===" 要求值和类型都相等
2-js 中常用的内置对象,并列举该内置对象的方法
一、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秒到现在的毫秒数
3-列举和数组操作相关的方法?
1.数组元素的增加
1.1 push() 向数组的末尾添加一个或多个元素,并返回新的长度
1.2 unshift() 向数组的开头添加一个或多个元素,并返回新的高度
2.数组元素的删除
2.1 pop() 删除并返回数组的最后一个元素
2.2 shift() 删除并返回数组的第一个元素
3.数组元素的其他方法
3.1 替换:arr.splice(m,n,data1,data2,....),从m开始,共n个,替换成data
3.2 截取:arr.slice(m,n);可从已有的数组中返回选定的元素。该方法接收两个参数slice(start,end),strat为必选,表示从第几位开始;end为可选,表示到第几位结束(不包含end位),省略表示到最后一位;start和end都可以为负数,负数时表示从最后一位开始算起,如-1表示最后一位。
3.3 reverse() 反转数组,返回结果
3.4 sort() 按字符规则排序,返回结果
3.5 valueOf() 返回数组对象的原始值
3.6 toString() 转换为字符串并返回;
3.7 join() 根据指定分隔符将数组中的所有元素放入一个字符串,并返回这个字符串。
join(str);参数可选,默认为","号,以传入的字符作为分隔符。
3.7 concat() 用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
concat(data1,data2,...);所有参数可选,要合并的数据;data为数组时,将data合并到原数组;data为具体数据时直接添加到原数组尾部;省略时创建原数组的副本。
3.8 indexOf() 根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1。该方法是查询方法,不会对数组产生改变。
3.9 forEach() ES5新增方法,用来遍历数组,该方法没有返回值。forEach接收的回调函数会根据数组的每一项执行,该回调函数默认有三个参数,分别为:遍历到的数组的数据,对应的索引,数组自 身。
3.10 map() 1.同forEach功能;2.map的回调函数会将执行结果返回,最后map将所有回调函数的返回值组成新数组返回。
3.11filter() 1.同forEach功能;2.filter的回调函数需要返回布尔值,当为true时,将本次数组的数据返回给filter,最后filter将所有回调函数的返回值组成新数组返回(此功能可理解为“过滤”)。默认有三个参 数,分别为value,index,self。
3.12 every () 判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true。every()接收一个回调函数作为参数,这个回调函数需要有返回值,every(callback);callback默认有三个参数,分 别为value,index,self。
当回调函数的返回值为true时,类似于forEach的功能,遍历所有;如果为false,那么停止执行,后面的数据不再遍历,停在第一个返回false的位置。
3.13 some() 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。some()接收一个回调函数作为参数,这个回调函数需要有返回值,some(callback);callback默认有三个参数,分别 为value,index,self。
3.14 reduce() 从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值。reduce()接收一个或两个参数:第一个是回调函数,表示在数组的每一项上调用的函数;第二个参 数(可选的)作为归并的初始值,被回调函数第一次执行时的第一个参数接收。
reduce(callback,initial);callback默认有四个参数,分别为prev,now,index,self。
4-列举和字符串操作相关的方法?
字符串查找相关方法:
find 查找指定的字符(串)在字符串里(第一次出现)的下标,若字符不存在会返回-1
rfind 找到最后一次出现的下标 (从右往左第一个)
print(‘word’.find(‘wo’)) #0
print(‘word’.find(‘x’)) #-1,没找到
print(‘morning’.rfind(‘n’)) #5
index/rindex 和 find/rfind 用法基本一样,区别在于find找不到会返回-1,index找不到会报错
count 用来查询指定字符串出现的次数 ;S.count(sub[, start[, end]]) -> int
print(‘good morning’.count(‘o’)) #3
in 查看指定字符串是否在字符串里,运算的结果是布尔值
print(‘m’ in ‘morning’) #True
print(‘abc’ in ‘abxcdac’) #False
字符串判断相关方法:
isalpha 判断是否全是字母
print(‘yes’.isalpha()) # True
print(‘he110’.isalpha()) # False
isdigit 判断字符串是否全是数字
print(‘hello’.isdigit()) # False
print(‘12’.isdigit()) # True
print(‘13.4’.isdigit()) # False
isalnum 判断是否由数字和字母组成(字符串里没有标点等字符)
print(‘hello’.isalnum()) # True
print(‘123’.isalnum()) # True
print(‘he110’.isalnum()) # True
print(‘123-_*456’.isalnum()) # False
isspace 是否全是空格
print(‘hello world’.isspace()) # False
print(’ '.isspace()) #True
startswith 判断字符串是否以指定内容开始 S.startswith(prefix[, start[, end]]) -> bool
mystr = ‘今天天气好晴朗,处处好风光呀好风光’
print(mystr.startswith(‘今’)) # True
print(mystr.startswith(‘今日’)) # False
endswith 判断字符串是否以指定内容结束。
mystr = ‘今天天气好晴朗,处处好风光呀好风光’
print(mystr.endswith(‘好风光’)) #True
print(mystr.endswith(‘好日子’)) #False
字符串替换:
replace: 替换字符串里的指定字符 。count 默认值是-1,表示替换全部;如果指定次数count,则替换不会超过count次。字符串是不可变的,replace方法不会改变原有的字符串。得到的结果才是替换后的字符串。
a = ‘hello’
x = a.replace(‘e’, ‘t’)
print(a) #hello
print(x) # htllo
print(a.replace(‘l’, ‘p’, 1)) #heplo
print(a.replace(‘l’,‘p’)) #heppo
修改大小写: 修改大小写的功能只对英文有效
capitalize 第一个单词的首字母大写
mystr = ‘hello world’
print(mystr.capitalize()) # Hello world
title 每个单词的首字母大写。
mystr = ‘hello world’
print(mystr.title()) # Hello World
lower 所有都变成小写。
mystr = ‘hElLo WorLD’
print(mystr.lower()) # hello world
upper 所有都变成大写。
mystr = ‘hello world’
print(mystr.upper()) #HELLO WORLD
字符串拼接:
s.join(iterable) 把参数(可迭代对象)进行遍历,取出参数里的每一项,然后再在后面加上分隔符s
print(‘a’.join(‘hello’)) #haealalao
names=[‘zhangsan’,‘lisi’,‘wangwu’]
a=’-’.join(names)
print(a) #zhangsan-lisi-wangwu
5-document.write()和 innerHTML 的区别?
document.write是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open。每次写完关闭之后重新调用该函数,会导致页面被重写。 innerHTML则是DOM页面元素的一个属性,代表该元素的html内容。你可以精确到某一个具体的元素来进行更改。如果想修改document的内容,则需要修改document.documentElement.innerElement。 innerHTML将内容写入某个DOM节点,不会导致页面全部重绘。 innerHTML很多情况下都优于document.write,其原因在于其允许更精确的控制要刷新页面的那一个部分。