JS 字符串&Math&Date
字符串
字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。
'abc' "abc" //使用单引号或双引号都可以,但是风格要统一 "ab'c" //双引号里用单引号 'ab"c' //单引号里用双引号
1)转义
反斜杠(\)在字符串内有特殊含义,用来表示一些特殊字符。
用单引号标记的字符串,里面想用单引号
'ab\'c' // "ab'c" 'ab\'c'.length //4 反斜杠不会被算进长度
2)多行
反斜杠(\)还可以用来多行书写,但是输出的结果依然是单行。
var str = 'a\ b\ c\ d' str // "abcd"
注意,反斜杠后面不能不能有其他字符,只能是换行。
接运算符(+
)也可以连接多个单行字符串,输出仍是单行
var str = 'a' +'b' +'c' +'d'; str // "abcd"
es6字符串的换行
var str = `hello //键盘1旁边的 ` 键 world ojk` str //"hello //world //ojk"
常见字符串方法
1)长度计算
vat str = 'hello' str.length //5 获取字符串长度 str[0] // "h" 获取下标为0的字符 str.charAt(2) // "l" 返回下标为2的字符 str.charCodeAt(2) // 108 返回下标为2的Unicode码点
2)字符串拼接
var str1 = 'Hello'; var str2 = 'World'; var str3 = str1 + str2 str3 // "HelloWorld" var color = 'red'; var str = '喜欢的颜色+${color}; //es6的语法
3)字符串截取
var str = 'Hello World'; str.slice(1,3) // 截取下标为1至下标为3的字符 str.substr(1,3) // 截取下标为1开始长度为3的字符 str.substring(1,3) // 截取下标为1开始长度为3的字符(不包含结束位置)
4)查找
var str = 'Hello my World'; str.search('my') //6 返回匹配值的第一个位置,没有则返回-1 str.replace('my','your') // "Hello your World" 查找'my'字符,并替换为第二个参数 str.match('my') // ["my"] 查找'my'字符,并将它作为数组返回
5)大小写
'hello world'.toUpperCase // "HELLO WORLD" 'HELLO WORLD'.toLowerCase() // "hello world"
6)字符串转换成数组
'abc'.split() // ["abc"] var a = 'a-b-c'.split("-") // 按照给的参数分割字符串 a // ["a", "b", "c"]
Math对象
Math
是 JavaScript 的原生对象,提供各种数学功能。该对象不是构造函数,不能生成实例,所有的属性和方法都必须在Math
对象上调用。
Math.E // 2.718281828459045 Math.LN2 // 0.6931471805599453 Math.LN10 // 2.302585092994046 Math.LOG2E // 1.4426950408889634 Math.LOG10E // 0.4342944819032518 Math.PI // 3.141592653589793 Math.SQRT1_2 // 0.7071067811865476 Math.SQRT2 // 1.4142135623730951
这些属性都是只读的,不能修改。
常用方法:
round()
用于四舍五入
Math.round(5.89) // 6 Math.round(-2.7) //-3
abs、max、min
abs()求绝对值
Math.abs(5) // 5 Math.abs(-7) //7
max()方法返回最大的参数,min()方法返回最小的参数
Math.max(5,3,20,8) // 20 Math.min(5,3,20,8) // 3
floor、ceil
floor方法返回小于参数的最大整数
Math.floor(3.2890) // 3 Math.floor(-3.2890) // -4
ceil方法返回大于参数的最小整数
Math.ceil(5.7) // 6 Math.ceil(-3.2) // -3
pow、sqrt
Math.pow
方法返回以第一个参数为底数、第二个参数为幂的指数值。
Math.pow(2,2) // 4 2的2次方 Math.pow(3,3) // 27 3的3次方
Math.sqrt
方法返回参数值的平方根。如果参数是一个负值,则返回NaN
。
Math.sqrt(4) // 2 Math.sqrt(-4) // NaN
random
Math.random()
返回0到1之间的一个伪随机数,可能等于0,但是一定小于1。
Math.floor(Math.random()*10) // 随机生成一个0~10之间的随机数
random的应用
从英文字母里随机生成一个32位的字符
function randomStr(len){ var str = ''; var dict = 'abcdefghijklmnopqrstuvwxyz'; for(var i = 0;i < len; i++){ var index = Math.floor(Math.random()*dict.length); str += dict[index] } return str } var str = randomStr(32) console.log(str)
随机生成一个IP地址
function getrandIP(){ function randIP(){ return Math.floor(Math.random()*256); } return randIP() + '.' +randIP() + '.' +randIP() + '.' +randIP() } var ip = getrandIP() console.log(ip)
Date对象
Date
对象是 JavaScript 原生的时间库。它以1970年1月1日00:00:00作为时间的零点,可以表示的时间范围是前后各1亿天(单位为毫秒)。
Date
对象可以作为普通函数直接调用,返回一个代表当前时间的字符串。
Date() // Sat Sep 15 2018 22:33:35 GMT+0800 (中国标准时间)"
Date
还可以当作构造函数使用。对它使用new
命令,会返回一个Date
对象的实例。如果不加参数,实例代表的就是当前时间。
var d = new Date(); d // Sat Sep 15 2018 22:35:36 GMT+0800 (中国标准时间)
Date.now
方法返回当前时间距离时间零点(1970年1月1日 00:00:00 UTC)的毫秒数,相当于 Unix 时间戳乘以1000。
Date.now() // 1537022221859
Date.parse
方法用来解析日期字符串,返回该时间距离时间零点(1970年1月1日 00:00:00)的毫秒数。
Date.parse('Aug 9, 1995') Date.parse('January 26, 2011 13:51:50') Date.parse('Mon, 25 Dec 1995 13:30:00 GMT') Date.parse('Mon, 25 Dec 1995 13:30:00 +0430') Date.parse('2011-10-10') Date.parse('2011-10-10T14:48:00')
参数要符合日期的格式书写,若是书写不正确则会返回NaN。
get方法
get方法可以用来获取实例对象某个方面的值。
getTime()
:返回实例距离1970年1月1日00:00:00的毫秒数,等同于valueOf
方法。
getDate()
:返回实例对象对应每个月的几号(从1开始)。
getDay()
:返回星期几,星期日为0,星期一为1,以此类推。
getYear()
:返回距离1900的年数。
getFullYear()
:返回四位的年份。
getMonth()
:返回月份(0表示1月,11表示12月)。
getHours()
:返回小时(0-23)。
getMilliseconds()
:返回毫秒(0-999)。
getMinutes()
:返回分钟(0-59)。
getSeconds()
:返回秒(0-59)。
getTimezoneOffset()
:返回当前时间与 UTC 的时区差异,以分钟表示,返回结果考虑到了夏令时因素。
var d = new Date(); d.getTime() // 1537022136428 d.getDat() // 15 d.getDay() // 6 d.getYear() // 118 d.getFullYear() // 2018 d.getMonth() // 8