JS语法
JavaScript 语法
JS 的三大核心
ECMAScript
BOM
DOM
JS 的输出语法
alert()
console.log()
document.write()
JS 注释
单行注释 Ctrl+/
多行注释 Ctrl+shift+/
JS 的变量
定义一个名字,来代表一个值
在运算的过程中,用来保存一个中间值
语法:let 变量名=值,const 变量名=值
变量命名规则
规则
1,只能由 数字 字母 下划线 美元符 组成
2,不能由数字开头
3,严格区分大小写
4,不能使用关键字或者保留字
规范
1,不要用中文
2,变量语义化
3,驼峰命名法
JS 的数据类型
基本数据类型
1,number数值
2,string 字符串
3,Boolean 布尔
4,undefined 空
5,null 空
symbol
ES6 引入了一种新的原始数据类型,表示独一无二的值。
复杂数据类型
object
array
function
复杂数据类型
对象 Object
是JS的一个复杂数据类型
用来存储一堆数据
以键值对的形式进行存储
定义对象
1,字面量定义
2,内置构造函数定义
对象的操作语法
1,点语法
2,数组关联语法
两种语法的区别
数组关联语法可以使用变量,可以拼接字符串
循环遍历
for in 循环
数据类型的存储
1,基本数据类型直接存储在栈里
2,复杂数据类型 数据存储在堆里,地址存储在栈里
数据类型赋值的区别
1,基本数据类型赋值后两个变量没有关系了
2,复杂数据类型复制以后,两个变量操作一个空间
数组 Array
JS的数据类型的一种
复杂数据类型
按照索引进行排序的
操作
length
表示数组长度
读
写
索引
表示数组里面每一个数据的“序号”
读写的属性
读
写
for循环进行遍历
数据类型检测
typeof 用来检测基础数据类型的运算符
1,typeof 变量
2,typeof(变量)
局限性:数组,正则,null,对象 全部返回object
instanceof 检测一个实例是否属于某个类
console.log(arr instanceof Array); //true
console.log(arr instanceof Object); //true
console.log(reg instanceof RegExp); //true
console.log(reg instanceof Object); //true
局限性:不能用于检测和处理字面量方式创建出来的基本数据类型值。只要在当前实例的原型链上的对象,我们用其检测出来都为true
constructor 构造函数
console.log(num.constructor == Number);//true
console.log(obj.constructor == Object);//true
(1).constructor === Number; //true
({}).constructor === Number; //true
局限性:我们可以把类的原型进行重写,在重写的过程中很可能把之前constructor给覆盖了,这样检测出来的结果就是不准确的
Object.prototype.toString.call() 原型链上的Object对象的toString方法
返回当前方法的执行主体(方法中的this)所属类的详细信息,是最全面也是最常用的检测数据类型的方式。
console.log(Object.prototype.toString.call(1)); //[object Number]
console.log(Object.prototype.toString.call(/^sf/)); //[object RegExp]
console.log(Object.prototype.toString.call("hello")); //[object String]
console.log(Object.prototype.toString.call(true)); //[object Boolean]
console.log(Object.prototype.toString.call(null)); //[object Null]
console.log(Object.prototype.toString.call(undefined)); //[object Undefined]
console.log(Object.prototype.toString.call(function() {})); //[object Function]
console.log(typeof(Object.prototype.toString.call(function() {}))); //string
数据类型转换
转数值
1,number()
2,parseint()
3,parsefloat()
4,取正负值
5,非加法的数学运算
转字符串
1,string()
2,tostring
3,加号进行字符串拼接
转布尔
1,Boolean()
运算符
数学运算符
1,+
2,-
3,*
4,/
5,%
6,**
赋值运算符
1,=
2,+=
3,-=
4,*=
5,/=
6,%=
比较运算符
1,>
2,<
3,>=
4,<=
5,==
6,===
7,!=
8,!==
逻辑运算符
1,&&
2,||
3,!
自增自减
1,++
2,--
分支语句
if语句
1,if(){}
2,if(){}else{}
3,if(){} else if(){}
4,if(){} else if(){} else{}
switch语句
switch(变量){
case 情况1:
情况1满足的代码
break
case 情况2:
情况2满足的代码
break
dedault:
所有情况都不满足的时候执行的代码
}
注意
1,case只有变量是===关系时,才算满足
2,只能判断一个准确的值,不能判断范围
3,break可以不写,不写会穿透
4,break穿透,从第一个满足条件的case开始穿透
5,default可以写可以不写,不写就是没有条件满足时没有代码执行
循环语句
循环必要条件
初始化
条件判断
重复执行代码
改变初始条件
循环语法
while
while(条件){重复执行的代码}
do while
do{重复执行的代码}while(条件)
for
for(初始化;条件判断;改变初始条件){重复执行的代码}
循环控制语句
break
直接结束当前循环
continue
结束本次循环,继续下一次
JS标记语句
结束到标记指定位置
语法