0


前端学习-JavaScript基础(严格模式、math、字符串)

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 用负数表示下标,会转成0var 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);

热感冒加鼻炎,太难受。就继续复习吧,加油。
在这里插入图片描述


本文转载自: https://blog.csdn.net/weixin_51346866/article/details/123587257
版权归原作者 Yan阿清 所有, 如有侵权,请联系我们删除。

“前端学习-JavaScript基础(严格模式、math、字符串)”的评论:

还没有评论