(18/8/19 今天所看的的总结 明天记得再看一遍 啊 苍天额····)
Math
* - Math和其他的对象不同,它不是一个构造函数。
* 它属于一个工具类。不用创建对象,它里边封装了数学运算相关的属性和方法
* eg
* Math.PI表示圆周率
* Math.E
* ···
console.log(Math.PI);
Math对象的方法
* Math.abs() 绝对值
* Math.ceil() 只要小数位有值就自动进1,向上取整
* Math.floor() 向下取整
* Math.round() 四舍五入
console.log(Math.abs(-1)); //1
console.log(Math.ceil(1.4)); //2
console.log(Math.floor(1.2)); //1
console.log(Math.round(1.2)); //1
console.log(Math.round(1.5)); //2
Math.random() 生成随机0-1的数
* -思考:
* 生成1-10
* console.log(Math.round(Math.random()*10)); //取0-10的数
* 生成x-y
* Math.round(Math.random()*x-y)+x
/*
* -思考:
* 生成1-10
* console.log(Math.round(Math.random()*10)); //取0-10的数
* 生成x-y
* Math.round(Math.random()*x-y)+x
*/
console.log(Math.round(Math.random()*10)); //取0-10的数
console.log(Math.round(Math.random()*9)+1); //1-10
max() 取多个数的最大值
min()
var max = Math.max(10,23,46,11);
var min = Math.min(10,23,46,11);
console.log(max); //46
console.log(min); //10
Math.pow(x,y) 返回x的y次幂
Math.sqrt() 开方
包装类
基本数据类型(String,Boolean,Number,Undefined,Null)
引用数据类型 Object
在JS中为我们提供了三个包装类,通过这三个包装类可以将基本数据类型的数据转换为对象
String()
* - 可以将基本数据类型字符串转换为String对象
Number()
* - 可以将基本数据类型的数字转换为Number对象
Boolean()
* - 可以将基本数据类型的布尔值转换为Boolean对象
但是注意:我们在实际应用中不会使用基本数据类型的对象
如果使用基本数据类型的对象,在做一些比较的时候结果可能不对
××方法和属性只能添加给对象,不能添加给基本数据××
当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后再调用对象的属性和方法,调用完以后,(销毁)再将其转换为基本数据类型。
包装类之String
//创建一个字符串
/*
* 在底层字符串是以字符数组的形式保存的
* ["H","e","l"]
*/
var str = "Hello Atguigu";
/*
* length属性
* - 可以用来获取字符串的长度
*/
console.log(str.length);
console.log(str[5]);
charAt()
* - 可以返回字符串中指定位置的字符
* - 根据索引获取指定的字符
charCodeAt()
* - 获取指定位置字符的字符编码(Unicode编码)
String.formCharCode()
* - 可以根据字符编码去获取字符
concat()
* - 可以用来连接两个或多个字符串
* - 作用和+一样
indexof()
* - 该方法可以检索一个字符串中是否含有指定内容
* - 如果字符串中含有该内容,则会返回其第一次出现的索引
* 如果没有找到指定的内容,则返回-1
* - 可以指定一个第二个参数,指定开始查找的位置
*
lastIndexOf();
* -从后往前找
* - 该方法的用法和indexOf()一样,
* - 也可以指定开始查找的位置
slice()
* - 可以从字符串中截取指定的内容
* - 不会影响原字符串,而是将截取到内容返回
* - 参数:
* 第一个,开始位置的索引(包括开始位置)
* 第二个,结束位置的索引(不包括结束位置)
* - 如果省略第二个参数,则会截取到后边所有的
* - 也可以传递一个负数作为参数,负数的话将会从后边计算
substring()
* - 可以用来截取一个字符串,与slice()类似
* - 参数:
* - 第一个:开始截取位置的索引(包括开始位置)
* - 第二个:结束位置的索引(不包括结束位置)
* - 不同的是这个方法不能接受负值作为参数,
* 如果传递了一个负值,则默认使用0
* - 而且他还自动调整参数的位置,如果第二个参数小于第一个,则自动交换
substr()
* - 用来截取字符串
* - 参数:
* 1.截取开始位置的索引
* 2.截取的长度
split()
* - 可以将一个字符串拆分为一个数组
* - 参数:
* -需要一个字符串作为参数,将会根据该字符串去拆分数组
正则表达式
正则表达式用于定义一些字符串的规则, 计算机可以根据正则表达式,来检查一个字符串是否符合规则,获取将字符串中符合规则的内容提取出来。
创建正则表达式的对象:
* 语法:
* var 变量 = new RegExp(“正则表达式”,”匹配模式”);
* 在构造函数中可以传递一个匹配模式作为第二个参数,
* 可以是
* i 忽略大小写
* g 全局匹配模式
使用字面量来创建正则表达式
* 语法:var 变量 = /正则表达式/匹配模式
* 使用字面量的方式创建更加简单
* 使用构造函数创建更加灵活
使用typeof检查正则对象,会返回object
var reg = new RegExp(“a”); 这个正则表达式可以来检查一个字符串中是否含有a
正则表达式的方法:
* test()
* - 使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,
* 如果符合则返回true,否则返回false
字符串和正则表达式的相关的方法
split()
* -可以将一个字符串传粉为一个数组
* -方法中可以传递一个正则表达式作为参数,这样方法会根据正则表达式
search()
* - 搜索字符串中是否含有指定内容
* - 如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1
* - 它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串
* - serach()只会查找第一个,即使设置全局匹配也没用
match()
* - 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
* - 默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索
* 我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
* 可以为一个正则表达式设置多个匹配模式,且顺序无所谓
* - match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果
replace()
* - 可以将字符串中指定内容替换为新的内容
* - 参数:
* 1.被替换的内容,可以接受一个正则表达式作为参数
* 2.新的内容
* - 默认只会替换第一个
正则表达式的语法
使用 | 表示或者的意思
* []里的内容也是或的关系 //[A-z0-9_] 所有字母数字和下划线
* [ab] == a|b
* [a-z] 任意小写字母
* [A-Z] 任意大写字母
* [A-z] 任意字母
* [0-9] 任意数字
*
* [^ ] 除了
量词
* - 通过量词可以设置一个内容出现的次数
* - 量词只对它前边的一个内容起作用
* - {n} 正好出现n次
* - {m,n} 出现m-n次
* - {m,} m次以上
* - + 至少一个,相当于{1,} n+
* - * 0个或多个,相当于{0,} n*
* - ? 0个或1个,相当于{0,1} n?
* eg:
var reg = /a{3}/;
reg = /(ab){3}/
reg = /ab{3}c/;
reg = /ab{1,3}c/;
检查一个字符串中是否以a开头
* ^ 表示开头
* $ 表示结尾
reg = /^a/; // ^ 表示开头
reg = /a$/; //匹配结尾
reg = /^a$/; //a同时是开头也是结尾···
reg = /^a|a$/; //a是开头和结尾···
检查一个字符串中是否含有 .
* . 表示任意字符
* 在正则表达式中使用\作为转义字符
* \. 来表示.
* \\ 表示\
*
* 注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串中转义字符,
* 如果要使用\则需要使用\\来代替
*
*
* \w
* - 任意字母、数字、_ [A-z0-9_]
* \W
* - 除了字母、数字、_ [^A-z0-9_]
* \d
* - 任意的数字 [0-9]
* \D
* - 除了数字 [^0-9]
* \s
* - 空格
* \S
* - 除了空格
* \b
* - 单词边界
* \B
* - 除了单词边界
【我的老天鹅,叭软件放在沙箱里运行什么都没保存····看来只能明天整理了(8/21)】