JavaScript 数据类型
值类型(基本类型):
字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。
引用数据类型(对象类型):
对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。
提示:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
1、动态数据类型
var x; // x 为 undefined
var x = 5; // 现在 x 为数字
var x = “John”; // 现在 x 为字符串
注:可以使用typeof 操作符来查看数据类型
2、字符串可以是引号中的任意文本,可以使用单引号或双引号
可以使用索引位置来访问字符串中的每个字符:
var carname = “Volvo XC60”;
var character = carname[7];
3、JavaScript 只有一种数字类型
4、数组Array
var myCars=["Saab","Volvo","BMW"];
访问数组:var name=myCars[0];
修改数组:myCars[0]="Opel";
部分方法如下:
方法名 | 含义 |
---|---|
concat() | 连接两个或更多的数组,并返回结果 |
filter() | 检测数值元素,并返回符合条件所有元素的数组 ,不会改变原始数组 |
find() / findIndex() | 返回符合传入测试(函数)条件的数组元素/元素引索 |
pop() / push() | 数组的末尾删除/添加元素 |
slice() | 选取数组的一部分,并返回一个新数组 |
splice() | 从数组中添加或删除元素,这种方法会改变原始数组 |
some() | 检测数组元素中是否有元素符合指定条件 |
sort() | 对数组的元素进行排序 |
1)splice函数的用法:
替换元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi");
结果:Banana,Orange,Lemon,Kiwi,Apple,Mango
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi");
结果:Banana,Orange,Lemon,Kiwi,Mango
删除元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,2);
结果:Banana,Orange
2)filter
var ages = [32, 33, 12, 40];
//注意这里的函数要写在调用之前,否则会报checkAdult是undefined
function checkAdult(age) {
return age >= 32;
}
ages.filter(checkAdult)
结果:33,12 40
更多的使用详情见 JavaScript Array 对象手册
5、Undefined 和 Null
Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。
var person;
var car="Volvo";
console.log(person + "<br>");
console.log(car + "<br>");
var car=null
console.log(car + "<br>");
6、对象
一个对象有它的属性和方法
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function()
{
return this.firstName + " " + this.lastName;
}
};
console.log("当作属性来访问:" + person.fullName)
//function() { return this.firstName + " " + this.lastName; }
console.log("当作方法来访问:" + person.fullName())
//John Doe
7、函数
function myFunction(a,b){
return a*b;
}
console.log(myFunction(4,3))
函数内部声明的是局部变量(使用var)
全局变量是 window 对象: 所有数据变量都属于 window 对象。
这条语句:
carname="Volvo";
值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性。将声明 window 的一个属性 carname。
8、let 和 const变量声明
let 声明的变量只在 let 命令所在的代码块内有效。
const 声明一个只读的常量,一旦声明,常量的值就不能改变。
9、json
JSON.parse() 用于将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify() 用于将 JavaScript 值转换为 JSON 字符串。