一、JavaScript概述
JavaScript语言主要是完成页面的数据验证,因此运行在客户端,需要运行浏览器来进行解析。
ECMAScript是js的一个标准。
一个完整的js是由ECMAScript,Dom,Bom组成的。
JS是弱类型,由值决定变量类型,变量可被重新赋值,后者会覆盖前者。
JavaScript的特点:
1.是一款脚本语言
编程语言需要编译,脚本语言不需要编译,浏览器可直接识别
2.是解释性语言
根据代码顺序逐一解释,某一行报错,会从这一行代码开始报错,不影响上面代码,此为JS阻塞
3.是一种安全性语言
具有web安全特性,不允许访问本地硬盘,也不允许对网络文件进行修改,只能通过浏览器进行浏览或者动态交互。
4.跨平台性
PC端,APP端,小程序端,三端皆可使用
二、JavaScript的引入方式
1.内部引入
在<head></head>或 <body></body>中,也可放在 <body></body>后
放在<head></head>会造成Dom阻塞
2.外部引入
<script src = "路径"></script>
注:引入方式可以同时存在,但不能两者互相嵌套
外部引入的标签内不能写JS代码
3.行内引入
eg:<a href="javascript:alert('hello')"></a>
三、输出语句
1.弹窗工具 alert( );
2.页面输出工具 document.write(),可识别标签
3.控制台输出工具 console.log()
输出语句的作用:
输出变量及某些内容的值
排错
四、变量
声明变量的关键字是var,var关键字可以省略,但是一般不省略,以分号结尾。
变量命名规范:
变量必须以字母、 $ 和 _ 符号开头
其它字符可以是字母、下划线、美元符号或数字。
变量名称对大小写敏感(y 和 Y 是不同的变量)
尽量使用驼峰命名法
不能是关键字和保留字符。
js的变量名是严格区分大小的。
js中可以声明同名变量,后者会覆盖前者
五、基本数据类型
number
string
boolean
值为true或false
null
作用:1.当不确定要定义的数据类型时,将变量的值赋为null
2.清空变量
undefined
null与undefined的区别:
null表示一个被人为地赋予或设置为为空的值。它是一个表示空对象指针的特殊值。即变量被赋值为null。
undefined表示一个声明了但未被赋值的变量
六、检测当前变量的数据类型
typeof
语法:
typeof 变量名
typeof(变量名)
注:typeof null的值为object,这是一个历史遗留问题,最初 JavaScript 中的 typeof 操作符只有六种返回值: “undefined”、“boolean”、“number”、“string”、“object” 和 “function”。当对 null 使用 typeof 时,由于 null 被认为是一个空对象指针,所以返回值是 “object”。
实际上,null 是一个表示空值的特殊关键字,并不是对象。这是 JavaScript 设计上的一个错误,但由于兼容性和历史原因,该错误一直被保留了下来。尽管如此,我们仍然可以通过使用严格相等运算符(===)来判断一个值是否为 null。
七、双等(==)和三等(===)的区别
双等(==)叫做相等运算符
三等(===)叫做严格相等运算符
双等(==)是宽松相等比较,它会进行类型转换后再比较值。如果两个操作数类型不同,JavaScript会尝试将它们转换为相同的类型,然后再比较。
console.log(1 == "1"); // 输出 true (进行了类型转换,将字符串"1"转换为数字1,然后比较值)
console.log(null == undefined); // 输出 true (进行了类型转换,null和undefined都被转换为相同的值)
三等(===)是严格相等比较,它不会进行类型转换,只有在两个操作数严格相等时才返回true。推荐使用三等(===)进行严格相等比较,以避免类型转换带来的意外结果。
console.log(1 === "1"); // 输出 false (不进行类型转换,数字1和字符串"1"不是严格相等) console.log(null === undefined); // 输出 false (null和undefined不是严格相等)