Date对象
1、创建一个新的对象
let newDate=new Date();
2、初始化一个新的对象赋值
let newDate2=new Date(1997,05,07); //注意,此处的月份从0开始计数,大于11则取余
Date对象方法
重写了toLocaleString()、toString()、valueOf()方法
let dt=new Date();
console.log(dt.toLocaleString()); //2021/3/17 下午3:19:54
console.log(dt.toDateString()); //Wed Mar 17 2021
console.log(dt.toLocaleTimeString()); //下午3:19:54
console.log(dt.toString()); //Wed Mar 17 2021 15:19:54 GMT+0800 (中国标准时间)
console.log(dt.valueOf()); //1615965903689 返回的是毫秒数
RegExp正则表达式暂时跳过
三种数据类型 String、Boolean、Number
Boolean类型
boolean 类型就true和false,没了。
console.log(1==2); //返回false
console.log(1==1); //返回true
Number类型
对象方法toString()
let num=10;
num.toString(); //返回10
num.toString(2); //返回1010
num.toString(8); //返回12
num.toString(16); //返回‘a’
对象方法toFixed()
num.tofixed(2); //四舍五入返回小数点为2的数
ES6类方法isInteger
console.log(Number.isInteger(1)); //返回true
String类型
length属性
let str="String";
console.log(str.lenth); //返回6
charAt对象方法
let str="String";
console.log(str.charAt(2)); //返回字符 ‘i’
console.log(str[2]); //返回字符‘i’ 但是不推荐这样直接访问字符,
注意: 在JS和C#中 string类型定义的变量都是可通过字符数组的方式进行读,但是都不能写!
Sample:逆置字符串
let str=new String("String");
let rts=str.split('').reverse().join(''); //先将字符串分割为字符数组,然后转置字符数组,最后数组转换为字符串
console.log(rts);
字符串操作方法
对象方法slice()、substr()、substring()
三个对象方法都能从字符串中提取子串,但是substr() 舍去不用了
subString(startIndex,endIndex);
let str="String";
console.log(str.slice(0,3)); //返回Str
console.log(str.slice(3)); //返回ing
consle.log(str.subString(0,3)); //返回Str
consle.log(str.subString(3,0)); //返回Str
consle.log(str.subString(3)); //返回ing
字符串位置方法,对象方法indexOf()、lastIndexOf()
let str="StringStr";
console.log(str.indexof("Str")); //返回 0
console.log(str.lastIndexOf("Str")); //返回 6
字符串包含对象方法startsWith()、endsWith()、includes()
startsWith("子串",开始搜索位置) 方法,用于判断子串是否为另一个串的开头,返回true或者fasle
let str="String";
console.log(str.startsWith("Str")); //返回true
console.log(str.startsWith("Str",1)); //返回的false,第二个参数表示开始匹配子串的位置
endsWith() 方法,用于判断子串是否为另一串的结尾
let str="String";
console.log(str.endsWith("ing")); //返回true
includes()方法,用于判断子串是否包含在字符串中,存在返回
let str="String";
console.log(str.includes("Str")); //返回true
console.log(str.includes("Str",1)); //返回false,第二个参数为匹配的位置
字符对象方法 trim()
trim() 方法是用于删除字符串前和字符串后所有的空格符
let str=" String ";
console.log(str); //返回的是 String
console.log(str.trim()); //返回String
字符对象方法 repeat() 返回字符串
let str="Sting";
let st=str.repeat(3); //返回 StringStringString
let stt="ing".repeat(3); //返回 inginging
字符对象方法 padStart() & padEnd() 方法返回字符串
padStart(Number)方法会复制,Number是返回的字符串的长度,不够就直接用空格填充 padEnd(Number)方法则是从右边开始填充
let str="String";
let s=str.padStart(10,'*'); //返回****String
let a=str.padEnd(10,"?"); //返回String????
let q=str.padStart(2); //返回String
字符串的迭代与解析 iterator方法(跳过)
要理解iterator方法,首先得理解Arguments对象,Arguments对象是一个类似于数组,里面存放函数的实参 记住用 for of 迭代就行了
let str="String";
for(let i of str){
console.log(i); //输出 S t r i n g
}
字符大小写转换的对象方法 toUpperCase & toLocaleUpperCase() & toUpperCase() &toLowerCase
toUpperCase 调用的变量会被强制转换为字符串类型的大写形式
let str="String";
console.log(str.toUpperCase()); //返回STRING
toLowerCase 调用的变量会被强制转换为字符串类型的小写形式
let str="String";
console.log(str.toLowerCase()); //返回string
toLocaleUpperCase('en-US')根据本机语言环境转换为相应的大写字符串
let str="String";
console.log(str.toLocaleUpperCase('en-US')); //转换为美式英语大写 STRING
toLocaleLowerCase('en-US')根据本机语言环境转为相应的小写字符串
let str="String";
console.log(str.toLocaleLowerCase('en-US')); //转换为没事英语小写 string
字符串匹配对象方法 match() 方法
match()方法可以接收一个正则表达式的字符串,还可以接收一个RegExp对象
localeCompare()对象方法
localeCompare() 以ASCII码形式对字符串进行比较
let str="String";
let stt="Abcdefg";
console.log(str.localeCompare(stt)); //返回 1
console.log(str.localeCompare(str)); //返回 0
console.log(stt.localeCompare(str)); //返回-1
单列列值对象Global\Math
isNaN()、isFinite()、parseInt()和parseFloat都是Global的方法
URL编码方法encodeURI
encodeURI(uri); //uri,一个完整的uri,返回一个新的字符串,表示字符编码统一的标识符
let url="https://baidu.com";
console.log(encodeURI(url)); //返回 https://baidu.com
//这个方法主要用在ajax上,看起来像是无用的
URL编码方法encodeURIComponent()
let url="https://baidu.com?`~·"; //返回 https%3A%2F%2Fbaidu.com%3F%60~%C2%B7
encodeURIComponent()不会对非ASCII的字符进行编码
eval()方法!重点!
eval(string)会将传入的字符串当作代码来执行
function func(a,b,c){
return a+b+c;
}
let str="func(100,200,300);";
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的属性。
let str="String";
function func(a,b,c){
return a+b+c;
}
console.log(window.func(1,2,3)); //返回6
console.log(window.str); //返回 String
Math类
Math类属性
console.log(Math.E); //返回 e 值
Math.LN10 // ln(10)
Math.LN2 // ln(2)
Math.PI // 返回 Π 3.1415926
Math.SQRT1_2 // 返回根号 1/2
Math.SQRT2 // 返回根号2
类方法 max()和min()方法
max()方法和min()方法,主要用于求一组数值中最大值和最小值
console.log(Math.min(1,3,5,7,9)); //返回 1
console.log(Math.max(1,3,5,7,9)); //返回 9
类方法ceil()、floor、round、fround、
console.log(Math.ceil(25.5)); //始终向上取舍 返回 26
console.log(Math.floor(25.5)); //向下取舍 返回25
console.log(Math.round(25.5)); //四舍五入、返回26
console.log(Math.fround(25.5)); //用单精度浮点型表示、返回25.899999618530273
类方法random()
random 方法是获取0-1之间的一个随机数 16位小数
let num=Math.random(); //返回了0.9168008932408351
其它类方法
Math.abs(x) 求绝对值、Math.pow() 求平方 、Math.sin()求sin等