Date对象

1、创建一个新的对象

let newDate=new Date();

2、初始化一个新的对象赋值

let newDate2=new Date(1997,05,07); //注意,此处的月份从0开始计数,大于11则取余

Date对象方法

重写了toLocaleString()、toString()、valueOf()方法

  1. let dt=new Date();
  2. let dt2=new Date("2021/04/10");
  3. console.log(dt.toLocaleString()); //2021/3/17 下午3:19:54
  4. console.log(dt.toDateString()); //Wed Mar 17 2021
  5. console.log(dt.toLocaleTimeString()); //下午3:19:54
  6. console.log(dt2.toString()); //Sat Apr 10 2021 11:08:12 GMT+0800 (中国标准时间)
  7. console.log(dt.valueOf()); //1615965903689 返回的是毫秒数

RegExp正则表达式暂时跳过


三种数据类型 String、Boolean、Number

Boolean类型

boolean 类型就true和false,没了。

  1. console.log(1==2); //返回false
  2. console.log(1==1); //返回true

bool类型需要注意的是0false,1true,但是0!==fasle,1!==true,除了1和0外其余的数既不是true也不是false

  1. if(1==true){
  2. console.log("是的,1==true"); //返回这个
  3. }else{
  4. console.log("不是,1!=true");
  5. }
  6. if(0==false){
  7. console.log("是的,0==fasle"); //返回这个
  8. }else{
  9. console.log("不是的,0!=false");
  10. }

Number类型

对象方法toString()

  1. let num=10;
  2. num.toString(); //返回10
  3. num.toString(2); //返回1010
  4. num.toString(8); //返回12
  5. num.toString(16); //返回‘a’

对象方法toFixed()

  1. num.tofixed(2); //四舍五入返回小数点为2的数

ES6类方法isInteger

  1. console.log(Number.isInteger(1)); //返回true

String类型

length属性

  1. let str="String";
  2. console.log(str.lenth); //返回6

charAt对象方法

  1. let str="String";
  2. console.log(str.charAt(2)); //返回字符 ‘i’
  3. console.log(str[2]); //返回字符‘i’ 但是不推荐这样直接访问字符,

注意: 在JS和C#中 string类型定义的变量都是可通过字符数组的方式进行读,但是都不能写!

Sample:逆置字符串

  1. let str=new String("String");
  2. let rts=str.split('').reverse().join(''); //先将字符串分割为字符数组,然后转置字符数组,最后数组转换为字符串
  3. console.log(rts);

字符串操作方法

对象方法slice()、substr()、substring()

三个对象方法都能从字符串中提取子串,但是substr() 舍去不用了

subString(startIndex,endIndex);

  1. let str="String";
  2. console.log(str.slice(0,3)); //返回Str
  3. console.log(str.slice(3)); //返回ing
  4. consle.log(str.subString(0,3)); //返回Str
  5. consle.log(str.subString(3,0)); //返回Str
  6. consle.log(str.subString(3)); //返回ing

字符串位置方法,对象方法indexOf()、lastIndexOf()

  1. let str="StringStr";
  2. console.log(str.indexof("Str")); //返回 0
  3. console.log(str.lastIndexOf("Str")); //返回 6

字符串包含对象方法startsWith()、endsWith()、includes()

startsWith(“子串”,开始搜索位置) 方法,用于判断子串是否为另一个串的开头,返回true或者fasle

  1. let str="String";
  2. console.log(str.startsWith("Str")); //返回true
  3. console.log(str.startsWith("Str",1)); //返回的false,第二个参数表示开始匹配子串的位置

endsWith() 方法,用于判断子串是否为另一串的结尾

  1. let str="String";
  2. console.log(str.endsWith("ing")); //返回true

includes()方法,用于判断子串是否包含在字符串中,存在返回

  1. let str="String";
  2. console.log(str.includes("Str")); //返回true
  3. console.log(str.includes("Str",1)); //返回false,第二个参数为匹配的位置

字符对象方法 trim()

trim() 方法是用于删除字符串前和字符串后所有的空格符

  1. let str=" String ";
  2. console.log(str); //返回的是 String
  3. console.log(str.trim()); //返回String

字符对象方法 repeat() 返回字符串

  1. let str="Sting";
  2. let st=str.repeat(3); //返回 StringStringString
  3. let stt="ing".repeat(3); //返回 inginging

字符对象方法 padStart() & padEnd() 方法返回字符串

padStart(Number)方法会复制,Number是返回的字符串的长度,不够就直接用空格填充

padEnd(Number)方法则是从右边开始填充

  1. let str="String";
  2. let s=str.padStart(10,'*'); //返回****String
  3. let a=str.padEnd(10,"?"); //返回String????
  4. let q=str.padStart(2); //返回String

字符串的迭代与解析 iterator方法(跳过)

要理解iterator方法,首先得理解Arguments对象,Arguments对象是一个类似于数组,里面存放函数的实参

记住用 for of 迭代就行了

  1. let str="String";
  2. for(let i of str){
  3. console.log(i); //输出 S t r i n g
  4. }

字符大小写转换的对象方法 toUpperCase & toLocaleUpperCase() & toUpperCase() &toLowerCase

toUpperCase 调用的变量会被强制转换为字符串类型的大写形式

  1. let str="String";
  2. console.log(str.toUpperCase()); //返回STRING

toLowerCase 调用的变量会被强制转换为字符串类型的小写形式

  1. let str="String";
  2. console.log(str.toLowerCase()); //返回string

toLocaleUpperCase(‘en-US’)根据本机语言环境转换为相应的大写字符串

  1. let str="String";
  2. console.log(str.toLocaleUpperCase('en-US')); //转换为美式英语大写 STRING

toLocaleLowerCase(‘en-US’)根据本机语言环境转为相应的小写字符串

  1. let str="String";
  2. console.log(str.toLocaleLowerCase('en-US')); //转换为没事英语小写 string

字符串匹配对象方法 match() 方法

match()方法可以接收一个正则表达式的字符串,还可以接收一个RegExp对象

localeCompare()对象方法

localeCompare() 是进行字符串的比较

  1. let str="String";
  2. let stt="Abcdefg";
  3. console.log(str.localeCompare(stt)); //返回 1
  4. console.log(str.localeCompare(str)); //返回 0
  5. console.log(stt.localeCompare(str)); //返回-1

单列列值对象Global\Math

isNaN()、isFinite()、parseInt()和parseFloat都是Global的方法

URL编码方法encodeURI

encodeURI(uri); //uri,一个完整的uri,返回一个新的字符串,表示字符编码统一的标识符

  1. let url="https://baidu.com";
  2. console.log(encodeURI(url)); //返回 https://baidu.com
  3. //这个方法主要用在ajax上,看起来像是无用的

URL编码方法encodeURIComponent()

  1. let url="https://baidu.com?`~·"; //返回 https%3A%2F%2Fbaidu.com%3F%60~%C2%B7

encodeURIComponent()不会对非ASCII的字符进行编码

eval()方法!重点!

eval(string)会将传入的字符串当作代码来执行

  1. function func(a,b,c){
  2. return a+b+c;
  3. }
  4. let str="func(100,200,300);";
  5. console.log(eval(str)); //这里返回600,执行了func()函数

通过eval()定义的任何变量和函数都不会被提升,解析代码时仍然被包围在字符串中,只有在eval()执行的时候才会被创建

在严格模式下,eval()内部创建的变量和函数,外部无法访问,同样的,赋值给eval也会报错

Gobal对象的属性

属性包括undefined、NaN、Infinity、Object、Array、Function、Boolean、String等


window对象

ECMA-262中没有规定直接访问Global对象的方式,但是window对象可以看作是Global对象的代理。因此全局作用域中所有声明的变量和函数都是window的属性

  1. let str="String";
  2. function func(a,b,c){
  3. return a+b+c;
  4. }
  5. console.log(window.func(1,2,3)); //返回6
  6. console.log(window.str); //返回 String

Math类

Math类属性

  1. console.log(Math.E); //返回 e 值
  2. Math.LN10 // ln(10)
  3. Math.LN2 // ln(2)
  4. Math.PI // 返回 Π 3.1415926
  5. Math.SQRT1_2 // 返回根号 1/2
  6. Math.SQRT2 // 返回根号2

类方法 max()和min()方法

max()方法和min()方法,主要用于求一组数值中最大值和最小值

  1. console.log(Math.min(1,3,5,7,9)); //返回 1
  2. console.log(Math.max(1.3.5.7.9)); //返回 9

类方法ceil()、floor、round、fround、

  1. console.log(Math.ceil(25.5)); //始终向上取舍 返回 26
  2. console.log(Math.floor(25.5)); //向下取舍 返回25
  3. console.log(Math.round(25.5)); //四舍五入、返回26
  4. console.log(Math.fround(25.55)); //用单精度浮点型表示、返回25.549999237060547

类方法random()

random 方法是获取0-1之间的一个随机数 16位小数

  1. let num=Math.random(); //返回了0.9168008932408351

其它类方法

Math.abs(x) 求绝对值、Math.pow() 求平方 、Math.sin()求sin等