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

 

posted @ 2018-09-14 22:15  庄小威  阅读(254)  评论(0编辑  收藏  举报