JS的三种使用方式:
1、行内JS
写在html标签中的js代码
2、内部JS
写在标签之间
可以放在html中的任意位置,一般放在标签中或标签中或标签后
3、外部JS
引入外部的js文件
注:如果
注释:
// 单行注释
/* 多行注释 */
变量:
变量的声明
JavaScript是一种弱类型语言,声明时不需要指定数据类型,直接通过var修饰符声明
1、先声明再赋值
2、声明并赋值
注:如果声明变量时不使用var修饰符,则该变量是全局变量
变量的注意点:
1)若只声明而没有赋值,则该变量的值为 undefined
2)变量要有定义才能使用,若变量未声明就使用,JavaScript 会报错,告诉你变量未定义
3)可以在同一条 var 命令中声明多个变量。
4)若使用 var 重新声明一个已经存在的变量,是无效的。
5)若使用 var 重新声明一个已经存在的变量且赋值,则会覆盖掉前面的值
6)JavaScript 是一种动态类型、弱类型语言,也就是说,变量的类型没有限制,可以赋予各种类型的值
变量提升
JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升
JavaScript 中有 6 种数据类型,其中有五种简单的数据类型:
Undefined、Null、布尔、 数值和字符串。一种复杂数据类型 Object。
数 值(Number): 整数和小数(比如 1 和 3.14)
字符串(String): 字符组成的文本(比如"Hello World")
布尔值(Boolean):true(真)和 false(假)两个特定值
Undefined: 表示“未定义”或不存在,即此处目前没有任何值
Null: 表示空缺,即此处应该有一个值,但目前为空
对象(object)(引用) : 各种值组成的集合
1)、对象(object){name:”zhangsan”,age:”18”}
2)、数组(array)[1,2,3]
3)、函数(function)function test() {}
typeof 操作符
typeof 操作符是用来检测数据类型。
说明:
1、typeof null 返回的是 object 字符串
2、函数不是数据类型,但是也可以使用 typeof 操作符返回字符串。
typeof 操作符可以操作变量也可以操作字面量。
注意:函数在 JavaScript 中是对象,不是数据类型,所以使用 typeof 区分 function 和object 是有必要的
undefined
undefined 类型的值是 undefined。
undefined 是一个表示"无"的原始值,表示值不存在。
出现 undefined 的常见情况:
1)当声明了一个变量而没有初始化时,这个变量的值就是 undefined
2)当函数需要形参,但未传递实参时
3)函数没有返回值,但定义了变量接收
null
null 类型是只有一个值的数据类型,即特殊的值 null。它表示空值,即该处的值现在为空,
它表示一个空对象引用。
使用 Null 类型值时注意以下几点:
1)使用 typeof 操作符测试 null 返回 object 字符串。
2)undefined 派生自 null,所以等值比较返回值是 true。所以,未初始化的变量和赋值为 null 的变量相等
数值型
数值型包含两种数值:整型和浮点型。
1)所有数字(整型和浮点型)都是以 64 位浮点数形式储存。所以,JS 中 1 与 1.0 相等,
而且 1 加上 1.0 得到的还是一个整数。浮点数最高精度是 17 位小数,由于浮点数运算时可能不精确,尽量不要使用浮点数做判断。
2)在存储数值型数据时自动将可以转换为整型的浮点数值转为整型。
3)对于过大或过小的数值,可以使用科学计数法来表示
4)Infinity、-Infinity
超过了表数范围,出现 Infinity(正无穷)或者-Infinity(负无穷)
isFinite()函数可以确定是否超出范围:
true:没有超出;false:超出了
NaN
表示非数值(Not a Number),是一个特殊的值。
如:将字符串解析成数字出错的场合。
console.log(parseInt(“abc”));//parseInt 方法将字符串解析为数值,但若无法解析,返回 NaN
注意:
NaN 不等于任何值,包括它本身,因为它不是一个值
NaN 与任何数(包括它自己)的运算,得到的都是 NaN
isNaN()可以用来判断一个值是否为 NaN
true:不是数字;false:是数字
字符串
使用 ’ ’ 或 " "引起来,如:‘sxt’,“good”。
使用加号’+’进行字符串的拼接,如:console.log(‘hello’ + ’ everybody’);
对象
instanceof 运算符
typeof 操作符对数组(array)和对象(object)的显示结果都是 object,那么可以利用
instanceof 运算符,它可用于判断一个变量是否某个对象的实例
数组:
数组的特点:
1、数组的长度是可变的
2、数组的类型可以不一样
3、不存在下标越界
1、数组的定义
1、隐式创建
var 变量名 = [值1,值2,…];
2、直接实例化
var 变量名 = new Array(值1,值2,…);
3、实例化并指定长度
var 变量名 = new Array(size);
获取数组的长度
数组.length
2、数组的遍历
数组的遍历即依次访问数组的每一个元素 ,JS 提供三种遍历数组的方式:
1、普通 for 循环遍历
for(var i = 0; i < 数组名.length; i++) {
}
注:可以拿到undefinded的值,无法获取数组中属性对应的值
2、for … in
for(var i in 数组) {
// i是下标或属性名}
注:无法拿到undefinded的值,可以获取数组中属性对应的值
3、foreach
数组.foreach(function(element,index){
// element:元素;index:下标});
注:无法获取属性对应的值与undefinded的值
- for – 不遍历属性
- foreach – 不遍历属性和索引中的 undefined
- for in – 不遍历索引中的 undefined
3、数组提供的方法
push 添加元素到最后
unshift 添加元素到最前
pop 删除最后一项
shift 删除第一项
reverse 数组翻转
join 数组转成字符串
indexOf 数组元素索引
slice 截取(切片)数组,原数组不发生变化
splice 剪接数组,原数组变化,可以实现前后删除效果
concat 数组合并