一.JS的三种使用方式
1.行内JS
在html标签上直接写JS代码
2.内部JS
通过SCRIPT标签写JS代码,script标签可以放在head、body中,建议放在body标签
最后
3.外部JS
定义JS文件,通过script标签的src属性引入对应的JS文件
<!-- 行内JS -->
<button onclick="alert('hello world');">按钮</button>
<!-- 内部JS -->
<script type="text/javascript">
//alert("这是一个按钮");
</script>
<!-- 引入外部JS文件 -->
<script src="js/test.js" type="text/javascript"></script>
二.语句
1.JS代码以行为单位,从上往下执行,一行一条语句
2.语句可以不加分号,但如果对一行定义多条语句,每句语句之后必须以分号结尾
3.表达式不需要以分号结尾,如果加了分号,则JS引擎会当作语句执行,生成不必要的语句
注释
1.HTML代码注释<!-- HTML注释 -->
2.JS代码注释 // 单行注释 /* 多行注释 */
标识符
规则:由unicode字母、_、$、数字组成、中文组成
1.不能以数字开头
2.不能是关键字和保留字
3.严格区分大小写、
规范:
1.见名知意
2.驼峰命名、下划线命名
关键字:
声明变量时,不要使用关键字
三.变量
JS是一种弱类型语言,在声明时不需要指明数据类型,直接用var修饰符进行声明
注:声明变量也可以不使用var直接声明
变量的声明
1.先声明再赋值
2.声明并赋值
变量的注意点
1.如果变量只声明而未赋值,则显示undefined
2.如果变量未声明使用,则会报错
3.可以同时定义多个变量
4.如果重新声明一个已存在的变量,是无效的
5.如果重新声明一个已存在的变量并赋值,会覆盖
6.JS是一种动态的弱类型语言,可以声明任意类型的变量
变量名提升
JS引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行.
这早成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升
注意:变量提升只对var命令声明的变量有效,如果变量不是用var命令声明的,就不会发生变量提升
三.数据类型
JS是弱类型语言,变量没有数据类型,数据有类型
undefined
未定义,值不存在
出现的情况:
1.变量只声明未赋值
2.当定义函数时需要形参,调用函数未传递实参时
3.当函数没有返回值,接受值为undefined
null类型
表示空值
注意点:
1.使用 typeof操作符测试null返回object字符串
typeof操作符用来判断操作符类型
2.undefined派生自null,所以等值比较返回值是true.未初始化的变量和赋值为null
布尔类型
布尔类型有两个值:true和false.常用来做循环或判断的条件
数值类型
数值包括两种数值:整型和浮点型
1.所有数字(整型和浮点型)都是以64位浮点数形式存储.所以,JS中1与1.0相等
2.在存储数值类型数据时自动将可以转换为整型的浮点型转为整型
字符串
1.使用单引号或双引号引起来
2.可以使用加号拼接
对象类型
1.数组
var 数组名 = [];
2.对象
var 对象名 = {};
3.函数
function 方法名(){
}
四.类型转换
1.自动类型转换
1.转字符串:所有的值转字符串都是加引号
2.转布尔型:有值为true,无值为false(0为false,非0为true)
3.转数值型:空值是0,非空的数值型字符串能转换非数值字符串为NaN
2.函数转换
parseInt() 转整数型
parseFloat() 转浮点型
注:转换时会从值的第零个位置开始找有效数字,直到找到无效数字为止,parseFloat在转换时会比parseInt多识别一个小数点
3.显示转换
toString()将值转换成字符串
toFixed()保留指定小数位
注:值不能为null
JS为number boolean string对象提供了构造方法,可以强制转换数据类型,转换的是值的全部,不是部分
注:可以转换null