(一)JavaScript学习总结:常用语法函数及其用法

一、数据类型

  1. 科学计数法
    123e5=12300000
    123e-5=0.00123
  2. typeof运算符
语句
typeof "bill"string
typeof 0.3number
typeof 数组/对象object
typeof 没有值的变量undefined
typeof 函数function
typeof true/falseBoolean

null和undefined值相等但类型不相等:

typeof undefined              // undefined
typeof null                   // object
null === undefined            // false
null == undefined             // true

二、JS对象

  1. 对象定义(对象中的属性不需要加引号
var person = {
		firstname: "Bill",
		lastname: "Gates",
		id: 678,
		fullname: function() {
			return this.firstname+" "+this.lastname;
		}
	}
  1. 访问对象属性
    obj.attrnameobj["attrname"]

  2. js中两个对象无法进行对比,对比值始终为false

三、JS字符串及字符串方法

常用函数作用
str.length获取字符串长度
str.indexOf(item,start)从start开始检索字符串item首次出现的位置
str.lastIndexOf(item,start)从start开始检索字符串item最后出现的位置
str.search(item)该检索函数不可设置检索起始位置,最终返回item在字符串中首次出现的位置
str.slice(start,end)返回一个新的字符串。包括字符串 str从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。当索引为负时,从尾部开始检索
str.substring(start,end)与slice不同的是不能接受负参数,其余相同
str.substr(start,length)substr类似于slice,不同之处在于,第二个参数为提取的长度,如果省略第二个参数(索引可为负),则提取剩余字符串
str.replace(regexp/substr,replacement)①regexp/substr:必需。规定子字符串或要替换的模式的 RegExp 对象 ;②replacement:规定了替换文本或生成替换文本的函数。③该函数默认只替换首个匹配,如果要执行大小写不敏感替换,则使用正则表达式/i,replace(/str1/i,str2)。④替换所有匹配,使用g(用于全局搜索),replace(/str1/g,str2)
str.toUpperCase()转大写
str.toLowerCase()转小写
str.concat()连接两个或多个字符串:str.concat(srt1,str2,…),所有字符串方法返回新的字符串,但原字符串都被不会被修改
str.trim()转删除字符串两端的空白符写
str.charAt()返回指定下标的字符
str.charCodeAt()返回指定索引的字符的Unicode编码
str.split(分隔)返回数组,如果分隔符为"",则字符串被分割成单个字符

四、JS数字及数字方法

4.1 Number属性对象

typeof NaN :返回number
Number.MAX_VALUE	:返回 JavaScript 中可能的最大数。
Number.MIN_VALUE :返回 JavaScript 中可能的最小数。
Number.NaN :表示非数字值("Not-a-Number")。
Number.NEGATIVE_INFINITY :表示负的无穷大(溢出返回),JS显示 NEGATIVE_INFINITY 时使用的是 -Infinity。
Number.POSITIVE_INFINITY :表示无穷大(溢出返回),JS显示 NEGATIVE_INFINITY 时使用的是 Infinity。

4.2 Number常用函数

常用函数作用
number.toString(16/8/2)把数字输出位十六进制、八进制、二进制
number.toExponential(num)把Number 对象的值转换成指数计数法。 参数num规定指数计数法中的小数位数
toFixed(num)把 Number 四舍五入为指定小数位数的数字。参数num规定小数的位数
number.toPrecision(num)在对象的值超出指定位数时将其转换为指数计数法。参数num规定位数
number.valueOf()字符串返回数字(注:所有的数据类型都有valueOf()和toString()方法)
parseFloat(字符串)将字符串转成float(注:parseFloat("10 years")返回10,parseFloat("years 10")返回 NaN)
parseInt(串)将字符串转成int

五、JS 数组及数组方法

注意事项:
数组初始化:var cars = ["Saab", "Volvo", "BMW"];使用的是中括号[](java使用的是{})
当然js中的数组初始化不止这一种方法

js不原生支持List,且js数组的长度是可变的

splice()函数会直接修改原数组,而slice不会修改原数组,最终返回截取后的新数组

5.1常用函数

常用函数作用
sort()排序,直接修改数组,不生成副本
push()向数组添加新元素,返回新的长度
pop()删除最后一个元素,返回数组的最后一个元素
shift()删除首个元素,返回数组的第一个元素
unshift()在开头添加新元素,并返回新的长度
Array.isArray(数组名)判断是否为数组 (方法等同于:数组名 instanceof array)
concat(arrayX,arrayX,......,arrayX)连接两个或多个数组,返回新数组
join(分隔符)用分隔符将数组连成字符串
splice(index,howmany,item1,.....,itemX)第一个参数定义删除的起始位置,第二个参数定义删除的个数,后面的参数为可选,用于替换那些被删除的元素 。最终返回包含被删除元素的数组
slice(start,end)第二个参数可省略,截取下标从start-end(不包括end)的元素,返回新数组,不修改原数组
indexOf(item,start)查找从start开始,item首次出现的索引
lastIndextOf(item,start)查找从start开始,item最后出现的索引

5.2数组迭代

数组迭代函数作用
forEach(f)数组遍历, function f(value,index,array) (有三个参数,未使用的参数可省略)
map(f)作用同forEach,但map不会更改原数组,不会对没有值的数组元素执行函数,最终返回新数组
filter(f)最终返回包含通过测试的数组元素的新数组,回调函数中每轮返回true(通过测试)or false
reduce(f)function f(total,value,index,array)(参数total是上一个函数的返回值),可用来计算总和,最大值,最小值等等
reduceRight(f)与reduce函数作用相同,只是遍历顺序相反
every(f)检查所有数组值是否通过测试,返回true or false
some(f)检查某些数组值是否通过测试
find(f)返回第一个通过测试的数组元素值
findIndex(f)返回通过测试的第一个数组元素的索引
求数组的最大值或最小值可借助apply
Math.max.apply(null,arr)
Math.min.apply(null,arr)
其中Math.min.apply([1, 2, 3]) 等于 Math.min(1, 2, 3)

六、JS数学

常用函数作用
Math.round(x)四舍五入为最近的整数
Math.pow(x,y)x的y次幂
Math.sqrt(x)平方根
Math.abs(x)绝对值
Math.ceil(x)上舍入最近的整数,6.4->7
Math.floor(x)下舍入最近的整数,2.7->2
Math.min(arr)求数组的最小值
Math.max(x)求数组的最大值
Math.random()返回介于0-1(不包括1)之间的随机数
Math.floor(Math.random() * 10)返回 0 至 9 之间的数
Math.floor(Math.random() * 11)返回 0 至 10之间的数
Math.floor(Math.random() * 10) + 1返回 1 至 10 之间的数
Math.floor(Math.random * (max-min))+ min返回介于 min(包括)和 max(不包括)之间的随机数
Math.floor(Math.random * (max-min+1))+ min介于 min 和 max(都包括)之间的随机数

七、JS类型转换

类型转换作用
tyepof a返回变量数据类型
a.constructor返回变量的构造器函数,a.constructor===Array/Date/等等 ,可以通过a.constructor.toString().indexOf("数据类型")>-1判断变量的类是否为某种数据类型
String(任意表达式)可将其他数据类型转换为字符串
Number()如果参数是 Date 对象,Number() 返回从 1970 年 1 月 1 日至今的毫秒数。如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。
一元运算符+可用于把变量转化为数字

八、正则表达式

直接量语法:/pattern/modifiers  即 /模式/修饰符
创建 RegExp 对象的语法:new RegExp(pattern, attributes);

8.1 修饰符

修饰符作用
i执行对大小写不敏感的匹配(ignoreCase)
g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。(global)
m执行多行匹配(multiline)

8.2 方括号

方括号用于查找某个范围内的字符

表达式描述
[abc]查找方括号之间的任何字符。
[^abc]查找任何不在方括号之间的字符。
[0-9]查找任何从 0 至 9 的数字。
[a-z]查找任何从小写 a 到小写 z 的字符。
[A-Z]查找任何从大写 A 到大写 Z 的字符。
[A-z]查找任何从大写 A 到小写 z 的字符。
[adgk]查找给定集合内的任何字符。
[^adgk]查找给定集合外的任何字符。
(redblue

8.2 元字符

元字符(Metacharacter)是拥有特殊含义的字符:

元字符描述
.查找单个字符,除了换行和行结束符。
\w查找单词字符。
\W查找非单词字符。
\d查找数字。
\D查找非数字字符。
\s查找空白字符。
\S查找非空白字符。
\b匹配单词边界。
\B匹配非单词边界。
\0查找 NUL 字符。
\n查找换行符。
\f查找换页符。
\r查找回车符。
\t查找制表符。
\v查找垂直制表符。
\xxx查找以八进制数 xxx 规定的字符。
\xdd查找以十六进制数 dd 规定的字符。
\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。

8.3 量词

量词描述
n+匹配任何包含至少一个 n 的字符串。
n*匹配任何包含零个或多个 n 的字符串。
n?匹配任何包含零个或一个 n 的字符串。
n{X}匹配包含 X 个 n 的序列的字符串。
n{X,Y}匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,}匹配包含至少 X 个 n 的序列的字符串。
n$匹配任何结尾为 n 的字符串。
^n匹配任何开头为 n 的字符串。
?=n匹配任何其后紧接指定字符串 n 的字符串。
?!n匹配任何其后没有紧接指定字符串 n 的字符串。

8.4 RegExp 对象方法

方法描述
compile编译正则表达式
exec检索字符串中指定的值。返回找到的值,并确定其位置
test检索字符串中指定的值。返回 true 或 false
pattern.test(str),返回true or false
pattern.exec(str),返回已找到的文本

8.5 支持正则表达式的 String 对象的方法

方法描述
search检索与正则表达式相匹配的值
match找到一个或多个正则表达式的匹配
replace替换与正则表达式匹配的子串
split把字符串分割为字符串数组

九、JS异常 及 JS作用域、严格模式

9.1 异常语法

try {
    // 供测试的代码块
	// 通过throw抛出自定义异常
	 if(...) throw err(可为数字、字符串、布尔值或对象)
}
 catch(err) {
    //  处理错误的代码块
} 
finally {
     // 无论 try / catch 结果如何都执行的代码块
}

9.2 声明严格模式

"use strict";(根据声明位置的不同,有全局作用域和局部作用域两种),此语句只能在脚本或函数开头被识别

// 在测试非 null 之前,必须先测试未定义:
if (typeof myObj !== "undefined" && myObj !== null)

!立个flag,打算之后加上每章的思维导图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值