推荐书本《JavaScript入门经典》《JavaScript语言精粹》
JavaScript的内置对象类型:
String对象:
1.length属性
2.indexOf()和lastIndexOf()方法 (查找子串) 没找到返回-1
带有两个参数:需要查找的字符串/开始查找的字符位置(可选) indexOf()是直接从一开始进行查找而lastindexOf()则查找最末尾的匹配字符串
3.substr()和substring()方法 (复制字符串的一个子串)
substring()接受两个参数:子串开始位置 / 子串最后一个字符后面的字符位置。 substr()接受两个参数:子串要包含的第一个字符的起始位置 / 提取子串的长度
4.toLowerCase()和toUpperCase()方法 (转换大小写)不带任何参数
5.charAt()和charCodeAt()方法 (从字符串中选取一个字符)
charAt()接受一个参数:所选字符在字符串中的索引位置,返回字符本身 charCodeAt()接受一个参数,返回该字符在Unicode字符集中的十进制编码
6.fromCharCode()方法 (将字符编码转换为字符串)【 String.fromCharCode(Unicode编码) 】
给他传送一系列用逗号分隔的,表示字符编码的数字,该方法就会把他们转换为一个字符串。是一个静态方法,不需要创建对象
7.trim()方法 (去掉字符串两边空格)
新的字符串方法:
1.split()方法 将一个字符串拆分成一个子串数组,在何处拆分字符串由传给该方法的分割参数确定, 这个参数可以使一个字符或文本字符串
反转字符串:
var value = prompt("please input your text:") function reverseText(val){ var part = value.split("") part.reverse() var reversetext = part.join("") document.write(reversetext) } reverseText(value)
2.replace()方法 (替换子串) 返回字符串的值
replace()方法接收两个参数,第一个为要查找的字符串,第二个为要替换的字符串
3.search()方法 (查找子串) 找到返回子串在字符串中的位置,没找到返回-1
search()方法接收一个参数,即要查找的子串
4.正则表达式 ——> 内容比较重要,见新随便
Array对象:(数组的本质上是一种对象)
1.length属性 (获得数组找中元素个数)
2.push()方法 (添加元素)
3.concat()方法 (连接数组) array1.concat(array2) —> 用concat连接的数组输出后数组之间会有逗号,因为concat使数组长度加一
4.slice()方法 (复制数组的一部分,和substring类似)
slice()接收两个参数:欲复制的第一个元素的索引 / 表示所复制的部分末尾的元素索引(可选)
5.join()方法 (将数组转换为单个字符串)
join()方法将数组中的所有元素连接起来,并返回为一个字符串,允许指定在连接数组元素时插入其间的任意字符。
6.sort()方法 (对数组进行排序 按照Unicode编码顺序)
7.reverse()方法 (反转数组元素原来的顺序)
8.indexOf()和lastIndexOf()方法 (返回元素在数组中的位置)
9.迭代数组,但不使用循环(下面的五个方法):
这些方法在迭代数组时,会在每个元素上执行用户定义的函数 例:
function functionName(value ,index ,array){ do something }
every(),some(),filter()方法——测试每个元素:(参数为测试函数)
var number = [1,2,3,4,5] function islessthan3(value, index, array){ var istruevalue = false if(value < 3) istruevalue = true return istruevalue } document.write(number.some(islessthan3)+"<br>") document.write(number.every(islessthan3))
上面的代码检索出小于3的元素,那么如何找到这些元素,要用到filter()函数
if(number.some(islessthan3)){ var sm3 = number.filter(islessthan3) document.write(sm3) console.log(typeof(sm3)) }
forEach()和map()方法:(操作元素)
foreach()和map()方法的区别在于foreach方法中参数的函数不能有返回值,只能对数组的元素进行操作,不能存储函数的结果。而map方法返回一个包含函数执行结果的新数组。
function doubleAndAlert(value, index, array){ var result = value*2 document.write(result) } function doubleAndAlert2(value, index, array){ var result = value*2 return result } var array = [1,2,3,4] array.forEach(doubleAndAlert) alert(array.map(doubleAndAlert2))
Math对象: 注:paresInt()是一个JavaScript内置函数,不是Math对象方法
1.abs()方法 (取绝对值)
2.min()和max()方法 (最大值和最小值)
3.ceil()方法 向上强制进位取整
4.floor()方法 向下强制舍位取整
5.round()方法 四舍五入
6.random()方法 返回随机浮点数
7.pow()方法 幂函数
Number对象:
toFixed()方法 该方法可以在指定点处截取一个数字,还会进行四舍五入操作。只有一个参数
Date对象:
var thedate = new Date(" 31 january 2020") 或 var thedate = new date(年,月,日,小时,分钟,秒,毫秒)
获得日期值:
1.getDate()月份中的第几天 2.getDay()表示星期几的整数 3.getMonth()表示月的整数 5.getFullYear()以四位数表示的年份 6.toDateString()基于当前时区返回完整日期字符串
var months = ["January","February","March","April","May","June","July","August","September","October","November","December"]; var days = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]; var date = new Date(); // document.write(date); var showmonth = months[date.getMonth()];//月份 var showday = days[date.getDay()];//星期 var showdate = date.getDate();//日期 var showyear = date.getFullYear();//年份 var datematch; switch(showdate){ case 1: case 21: case 31: datematch = "st" break case 2: case 22: datematch = "nd" break case 3: case 23: datematch = "rd" break default: datematch = "th" break } document.write("it is the "+showdate+datematch+" day <br>") document.write("in the month of "+showmonth+"<br>") document.write("in the year of "+showyear+"<br>") document.write("and it's "+showday)
设置日期值:
1.setDate()设置月中的天数 2.setMonth()设置月份(0表示1月) 3.setFullYear()设置年份
获得时间值:
1.getHours() .2.getMinutes() 3.getSeconds() 4.getMilliseconds() 5.toTimeString()
设置时间值:
1.setHours() .2.setMinutes() 3.setSeconds() 4.setMilliseconds()
创建对象:
var obj = new Object(); 或 var obj = {};
使用字面量的方法来创建对象:
var obj = { firstName : "nihao", lastName: "shabi", greet : function(){ alert(this.firstName+this.lastName); }, }
使用prototype定义共享方法让效率变得高效:
Person.prototype.getFullName(){
XXXX;
}
日期时间和计时器:
世界时:
// 世界时 var localtime = new Date(); // document.write(localtime) var html = "<p>UTC Time is "+localtime.toUTCString()+"</p>"//转换为对应的UTC日期和时间,字符串类型 html += "Local time is "+localtime.toLocaleString()+"</p>"//返回用户计算机的时间,字符串类型 html += "<p>time zone offset is "+localtime.getTimezoneOffset()+"</p>"//返回本地时间和UTC时间的差值(min) html += "<p>using toLocaleTimeString gives "+localtime.toLocaleTimeString()+"</p>"//返回计算机上的时间 html += "<p>using toTimeString gives "+localtime.toTimeString()+"</p>"//显示时间和对应的时区 html += "<p>using toLocaleDateString gives "+localtime.toLocaleDateString()+"</p>"//显示用户计算机上的日期 html += "<p>using toDateString gives "+localtime.toDateString()+"</p>"//标准日期格式 document.write(html)
设置和获取Date对象的UTC时间/日期:
setUTCDate() setUTCFullYear() setUTCHours() setUTCMilliseconds() setUTCMinutes() setUTCMonth() setUTCSeconds()
getUTCDate() getUTCDay() getUTCFullYear() getUTCHours() getUTCMilliseconds() getUTCMinutes() getUTCMonth() getUTCSeconds() toISOString()
ISO格式:YYYY-MM-DDTHH:mm:ss.sssZ (字符T隔开时间和日期,Z表示UTC时区)
计时器:
var timeId = setTimeout(yourfunction,millisecondsDelay) clearTimeout(timeId) var timeId = setInterval(yourfunction,millisecondsDelay) clearInterval(timeId)