ES5:严格模式
ES5:ECMA语法规范的第五个版本—兼容性最好的。
ES6:强弱语言。
严格模式是js的一种语法,使用这种语法,就开启了严格模式。
全局开启严格模式,可以规范全局的代码;局部开启严格模式,不能约束全局代码。
开启严格模式
'use strict'
'use strict'//全局开启严格模式functionfn(a,a){
console.log(a+a)}//会报错,严格模式下,参量不能同名
严格模式的规范
1、不允许省略var定义变量
2、不允许函数形参同名
3、不允许普通函数中的this代表window(报underfined)
严格模式的好处
1、让我们的代码更加规范
2、运行效率更高,消除了一些不必要的影响
this关键字的5种使用场景
1、可以全局使用,代表浏览器窗口window
console.log(this);
2、普通函数中使用,也代表浏览器窗口window
functionfn(){
console.log(this);}fn()
3、自调用函数中使用,也代表浏览器窗口window
(function(){
console.log(this);})()
4、在事件中处理程序的函数中可以使用,–代表当前事件触发的事件源
an.onclick=function(){
console.log(this)}
5、对象方法使用,代表当前方法的所在的对象
var ob={
name:'张三',
age:12,
play:function(){}}
ob.play()
字符串
以前也简单提过一下字符串,现在了解一下字符串的方法,字符串也跟数组一样可以有下标,以为可以遍历。
根据下标查找数据
var a='ahafakflajf'
console.log(a[1])//h
console.log(a[2])//a
原来的字符串,不能被修改
var a='ahafakflajf'
a[0]='e'
字符串长度有长度用length获取
var a='ahafakflajf'
console.log(a.length)
遍历字符串翻转输出
var str='ajlas1dk'var block=''//空字符串for(var i=str.length-1;i>=0;i--){
block+=str[i]}
console.log(block)
字符串比较
1、逐字符比较,字符大小由阿斯克码决定的
2、 排在后面的字母更大,小写字母比大写字母更大,字母比数字更大
//取出第一个字符比较大小,相等就各自的第二个字符比较大小
console.log('2'>'19')//true//根据ACS11码(128个)比较大小
console.log('a'>'b')//false//汉字比较,由Unicode码决定
console.log('我'>'你')//true
ASCII对照表
相应ASCII码:
0-9:48~57
A-Z:65~90
a~z:97~122
字符串方法
- charAt(下标):通过下标获取指定的字符
var str ='abcdfg'console.log( str.charAt(2));//c
- charCodeAt(下标) :通过下标获取对应ACS11码
var str ='abcdfg'console.log( str.charCodeAt(2));//97
- string.fromCharCode(ASCII): 获取ASC11对应的字符
var str ='abcdfg'console.log( str.string.fromCharCode(97));//a
- indexof:指定从哪个字符开始查找他第一次出现的的下标
var str ='abcdfg'console.log(str.indexof(a));//0 console.log(str.indexof(1));//没找到-1
- lastIndexof:查找字符最后一次出现的下标
var str ='afbcdfcg'var str2 = str.lastIndexOf('f')console.log(str2);//5
- slice(开始下标,结束下标):截取字符串
var str="adagegehjjdavav"//负数,从后面往前数var str2=str.slice(-1,-2) console.log(str2)//v
- split(分隔符):将字符串以指定的分隔符分割字符串成数组
var str ='abcadfag'console.log( str.split('a'));//每个元素都不包含指定的分隔符字符
效果:var str ='abcadfag'console.log(str.split('a',1));//1表示保留个数
效果:
- trim 去两端空白
var str =' abcdfg 'console.log( str.trim());//'abcdfg'
- trimLeft 去左边空白
var str =' abcdfg 'console.log( str.trimLeft());//'abcdfg '
- trimRight 去右边空白
var str =' abcdfg 'console.log( str.trimRight());//' abcdfg'
- toUpperCase:字符串中所有字符转成
大写字母``````var str ='abcgA'console.log( str.toUpperCase());//ABCGA
- toLowerCase:字符串中所有字符转成
小写字母``````var str ='ABCdd'console.log( str.toLowerCase());//abcdd
- replace(被替换,替换的内容):把字符串中指定的部分替换成新内容
var str ='hi,boy'var str1 = str.replace('boy','girl') console.log(str1);
- substr(开始下标,截取长度):截取字符串,返回截取出来的字符串
var str ='ABCddaadafafavssds'console.log( str.substr(2,4));//Cddaconsole.log( str.substr(2));//Cddaadafafavssds 第二个数没有,默认截取到结尾
- subString(开始下标,结束下标) substring 用负数表示下标,会转成0
var str ='ABCddaadafafavssds'console.log( str.subString(2,4));//Cdd (包前不包后)console.log( str.subStringr(2));//Cddaadafafavssds 第二个数没有,默认截取到结尾
数字处理(Math)
Math是js内置的一个对象
math属性
// 圆周率
console.log(Math.PI)
math方法:
获取随机数random
console.log( Math.random())//1以内的随机数
获取0-10之间的随机数
var sum =Math.random()*10
console.log(sum);
获取0-100之间的随机数
var sum =parseInt(Math.random()*100)
console.log(sum);
获取20-120之间的随机数
var sum =parseInt(Math.random()*100)+20
console.log(sum);
获取20-100之间的随机数
var sum =parseInt(Math.random()*80)+20
console.log(sum);
获取指定范围的随机数
// 封装functionrad(a,b){returnparseInt(Math.random()*(b-a))+a
}var a=rad(20,30)//30 40 不能 40 30
console.log(a)// 优化functionrad(a,b){var max=a
var min =b
if(b>a){
max=b
max=a
}returnparseInt(Math.random()*(max-min))+ min
}var a=rad(30,20)
console.log(a)
向上取整: Math.ceil(要取整的数字)
var a=3.333
console.log(Math.ceil(a))//4
向下取整:(只舍弃不是入):Math.floor(要取整的数字)
var a=3.56
console.log(Math.ceil(a))//3
四舍五入 :结果为整数: Math.round(要取整的数字)
var a=3.56
console.log(Math.round(a))//4
绝对值 Math.abs
var a=-2.24
console.log(Math.abs(a))//2.24
求次方 Math.pow(底数,幂数)
var num = Math.pow(3,2)//3的2次方
console.log(num);//9
开根号:Math.sqrt()
var num = Math.sqrt(4)
console.log(num);//2
最大值 :Math.max()
var a = Math.max(0,3,24,2)
console.log(a)
最小值: Math.min()
var a = Math.min(0,3,24,2)
console.log(a)
正弦: Math.sin(x)
函数返回一个数值的正弦值。x:一个数值(以弧度为单位)
Math.sin(Math.PI/2);// 1
余弦:Math.cos(x)
函数返回一个数值的余弦值。x:一个数值(以弧度为单位)
Math.cos(Math.PI);// -1
Math.cos(2* Math.PI);// 1
日期时间Data()
创建日期对象
var data=newDate()
console.log(data)//获取现在时间,输出字符串
获取时间日期
语法:
时间对象.get[年/月/日]()
例子:date.getFullYear()
获取年份 getFullYear()
var data=newDate()var year = date.getFullYear()
console.log(year);
获取月份 getMonth()
var data=newDate()var month = date.getMonth()
console.log(month);//后面也是这样获取,也不重复了
获取日 getDate()
获取星期 getDay()
获取时 getHours()
获取分钟 getMinutes()
获取秒 getSeconds()
获取毫秒 getMilliseconds()
获取时间戳 getTime()
设置时间
语法:
时间对象.set[年/月/日](参数)
例子:date.setFullYear(2024)
设置年 setFullYear()
var date =newDate()// 获取到当前时间对象
console.log(date);
date.setFullYear(2024)
console.log(date);
设置月 setMonth() 注意:0-11表示12个月
//接上面获取当前时间对象var date =newDate()// 获取到当前时间对象
console.log(date)
date.setMonth(7)//8月//后面也是一样设置就不重复了
设置日 setData()
设置时 setHours()
设置分 setMinutes()
设置秒 setSeconds()
设置毫秒 setMilliseconds()
设置时间戳 setTime()
创建日期对象里的参数
字符串参数
var data =newDate('2022-10-1 08:59:01');consolelog(data)
数字参数: 月份要比实际小一
var data =newDate(2022,10,1,8,59,1);consolelog(data)
时间戳参数:
var data =newDate(0);consolelog(data)
获取时间戳
1、时间日期对象.getTime()
2、在new前面放+
var data =+newData()
console.logo(data)
3、在构造函数中,
vara=functionparse('2022-3-18 23:13:01')
console.logo(a)
格式化输出时间
//获时间对象var data =newDate()// 格式化整个年月日时分秒var str=data.toLocaleString()
console.log(str);// 格式化年月日var str1=data.toLocaleDataString()
console.log(str1);// 格式化时分秒var str2=data.toLocaleTimeString()
console.log(str2);
热感冒加鼻炎,太难受。就继续复习吧,加油。
版权归原作者 Yan阿清 所有, 如有侵权,请联系我们删除。