呕心沥血 JavaScript知识点梳理大全,超详细 建议收藏!!!
大家好,我是王同学,爆肝三天三夜王同学把JavaScript 知识点梳理了一遍,文章没有一点套路,只有满满的干货
如果对你有帮助就给我点个赞吧,这样我们就互不相欠了
星光不负赶路人,所有的幸运都来自于坚持不懈的努力,大家一起冲冲冲~~~
一、语法和变量
(一)、前端三层
(二)、JS的书写位置
(三)、输出语句
(四)、变量声明提升
变量的声明提升:你可以提前使用一个稍后才声明的变量,而不会引发异常
在执行所有代码前,JS有预解析阶段,会预读所有变量的定义
二、基本数据类型
(一)、JavaScript中两大类数据类型
(二)、typeof运算符
typeof运算符可以检测值或者变量的类型
(三)、五种基本数据类型的typeof检测结果
(四)、数字类型
所有数字不分大小、不分整浮、不分 正负、都是数字类型
较大数或者较小数(绝对值较小)可以写成科学计数法
(五)、不同进制的数字
(六)、一个特殊的数字型值NaN
NaN是英语“not a number” 的意思,即不是一个数字,但它是一个数字类型的值
(七)、字符串类型
- 字符串就是人类的自然语言
- 字符串要用引号包裹,双引号或者单引号都可以
(八)、字符串的拼接
加号可以拼接多个字符串
(九)、字符串和变量的拼接
空字符串
一些时候需要用到空字符串,直接书写闭合的引号对即可
字符串的length属性
字符串的length属性表示字符串的长度
(十)、字符串常用的方法
(十一)、charAt()方法
作用:得到指定位置的字符
(十二)、substring()方法
(十三)、substr()方法
(十四)、slice()方法
(十五)、三者对比总结
(十六)、toUpperCase()和toLowerCase()
(十七)、indexOf()
(十八)、BOOlean(布尔类型)
(十九)、Undefined
一个没有被赋值的变量的默认值是undefined,而undefined的类型也是undefined,即undefined又是值,又是一种类型,这种类型只有它自己一个值
变量提升的情况
在变量声明提升时,变量的值也是undefined
(二十)、null类型
- null对象表示是空,它是空对象
- 当我们需要将对象销毁,数组销毁或者删除事件监听时,通常将他们设置为空
(二十一)、数据类型的转换
使用Number()函数
使用parseInt()函数
使用parseFloat()函数
(二十二)、复杂数据类型简介
3
true
NaN
Infinity
bcd
bc
''
bc
(二十三)、表达式和运算符
表达式的种类
算术、关系、逻辑、赋值、综合
(二十四)、算术运算符
默认情况下,乘除法的优先级要高于加法和减法,必要时可以使用圆括号来改变运算的顺序
加号的两种作用
取余运算(求模运算)
- 取余运算也叫求模运算,用百分号来表示
- a%b表示 a除以b的余数,它不关心整数部分,只关心余数
(二十五)、隐式类型转换
如果参与运算的某操作数不是数字型,那么JavaScript会自动将此操作符转换为数字
隐式转换的本质就是内部调用Number()函数
解决办法:在进行小数运算的时候,要调用数字的toFixed ()方法保留指定的小数位
(二十六)、幂和开根号
JavaScript中没有提供幂计算,开根号的运算符,需要使用Math对象相关的方法进行计算
(二十七)、向上取整和向下取整
(二十八)、关系表达式
(二十九)、判断是否相等
(三十)、相等和全等
(三十一)、NaN不自等
如何判断某变量的值为NaN
- isNaN()函数可以用来判断变量的值是否为NaN
- 但isNaN()也不好用,它的机理是:只要该变量传入Number()的执行结果是NaN,则isNaN()函数都会得到true
不相等和不全等
JS中没有连比
判断变量 a是不是介于3到15之间,应该怎么写呢?
(三十二)、非运算
置反运算的结果一定是布尔值
(三十三)、与运算
(三十四)、或运算
(三十五)、短路计算
(三十六)、逻辑运算的顺序
(三十七)、赋值运算符
(三十八)、快捷运算符
快捷运算符表示在原数组基础上进一步进行运算
(三十九)、自增和自减运算符
(四十)、综合表达式
综合表达式的运算顺序:非运算—数学运算—关系运算—逻辑运算
变量的范围表示
知识回顾
函数
(一)、函数的定义和调用
(二)、函数的调用
执行函数体中的所有语句,就称为函数调用
调用函数十分简单,只需要在函数名字后面书写圆括号对即可
(三)、语句的执行顺序
(四)、函数声明的提升
和变量声明提升类似,函数声明也可以被提升
函数的表达式是不能被提升的,如果函数是用函数表达式的写法定义的,则没有提升的特性
(五)、函数的优先提升
<script>
//首先函数会优先提升
//变量的定义后提升 后提升并不会把先提升的覆盖掉
//变量提升只会先提升定义 不会提升值
fun();
var fun = function() {
alert('A');
}
function fun() {
alert('B')
}
fun();
</script&g