一个完整的js是由ECMAScript,Dom,Bom组成的
JS是弱类型 JAVA 是强类型
js特点:
1. js是脚本语言(不需要编译,浏览器可直接识别)
2. js是解释性语言,根据代码顺序逐一解释,其中某一行有报错,js就会卡在此处无法进行下一步。(哪行报错,哪行以下都不会执行,但不影响前面)【js阻塞】
3. js是一种安全性语言
4. js跨平台性(PC端、APP端、小程序端)
js的引入方式:
1. 内部引入<script></script>
2. 外部引入 (不能直接写js代码,不能嵌入内部引入)
js输出语句:
1. 弹框工具 alert(“”);
2. 页面输出工具 document.write(“”);【可以识别标签】
3. 控制台输出工具 console.log();
输出语句作用:
1. 输出变量的值,输出某些内容的值
2. 排错
变量 声明变量的关键字是var
var num = 1;【值是什么类型,变量名是什么类型】
标识符不能是关键字和保留字符:
break、case、catch、continue、default、delete、do、else、finally、for、function、if、in、instanceof、new、return、switch、this、throw、try、typeof、var、void、while、with、
boolean、byte、char、class、const、debugger、double、enum、export、extends.fimal、 float、goto、implements、import、int、interface、long、mative、package、private、
protected、public、short、statil、super、synchronized、throws、transient、volatile等。
数据类型(基本数据类型)
1.number(数字类型) 2.string(字符串) 3.boolean(布尔值 true/false) 4.null(空值) 5.undefined(未定义)
空值作用:
1.空值(并不知道要定义什么类型)
2.清空变量
null与undefined区别:
声明出来变量但未赋值就是定义
检测当前变量是什么数据类型用typeof
1.typeof+空格
2.typeof()
隐式类型转换:
当number与string中的数字相减时,string中的数字会先转换为数字,然后进行减法运算(必须得是数字)
NaN(非数字)
当number与布尔运算时,
布尔值在运算时,true会转换为1,false会转为0
js语法:
1.严格区分大小写
2.必须加 ;
3.声明变量不可以使用变量声明,驼峰命名法
4.不能用数字开头
“==”与“===”的区别
- 操作数1 == 操作数2:也就是进行双等号比较时,先检查两个操作数的数据类型,如果相同,就进行 === 的比较,如果不同,则进行一次类型转换,转为相同类型后再进行比较
- 操作数1 === 操作数2:进行比较时,如果类型不同,直接就是false
使用typeof判断数据类型的时候null出来是object?
null 其实属于自己的类型 Null,而不属于Object类型,typeof 之所以会判定为 Object 类型,是因为JavaScript 数据类型在底层都是以二进制的形式表示的,二进制的前三位为 0 会被 typeof 判断为对象类型,而 null 的二进制位恰好都是 0 ,因此,null 被误判断为 Object 类型。