var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";
document.write(typeof cars); // object
如果你要判断该对象是否为数组,可以使用以下两种方法:
1、使用 isArray 方法
var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";
// 判断是否支持该方法
if (Array.isArray) {
if(Array.isArray(cars)) {
document.write("该对象是一个数组。") ;
}
}
2、使用 instanceof 操作符
var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";
if (cars instanceof Array) {
document.write("该对象是一个数组。") ;
}
468JavaScript数据类型
最常用的对象创建方式:
第一种:
function Demo(){
var obj=new Object();
obj.name="张思";
obj.age=12;
obj.firstF=function(){
}
obj.secondF=function(){
}
return obj;
}
var one=Demo();
// 调用输出
document.write(one.age);
第二种:
function Demo(){
this.name="张思";
this.age=12;
this.firstF=function(){
}
this.secondF=function(){
}
}
var one=new Demo
// 调用输出
document.write(one.age);
467JavaScript数据类型
数组有四种方式:
var arr1 = new Array('a', 'b', 'c'); //这是一个预定义的数组,在创建时初始化
var arr2 = ['a', 'b', 'c' ]; //同样是在创建时初始化,但是这种创建更为简洁直观
var arr3 = new Array( ); var arr4 = [ ]; //这两种是创建空的数组
在数组操作中,最值得注意的是下标的使用,容易出错
对象的创建,一般推荐使用
var people = {name : 'Tom', age : 21 , eat : function(){ } }
也可先创建对象再追加属性和方法
var people = new Object();
people.name = 'Tom';
people.age = 21;
people.eat = function(){ }
var a = 100;
function a() {
return "function";
}
console.log(a); //输出 100
console.log(a());
/*
报错
Uncaught TypeError: a is not a function
(anonymous function) @test.html:9
*/
var a = 100;
var a = function() {
return "function";
}
console.log(a);
/*
输出
function() {
return "function";
}
*/
console.log(a()); //输出 "function"
函数与内部变量重名
定义普通函数,即在 window 变量下,定义一个 key,它的名字为该函数名,值为该函数的地址。函数内部的 this 指向 window 对象。
function a() {
console.log(this); //输出 window{...}
this.a = 1; //即 window.a = 1,此时window下的function a已经被该变量覆盖了。
var a = 5; //下面的这几个变量都是局部变量,仅在花括号范围内有效。
a = 10;
var v = "value"
return "function";
}
console.log(a); //输出 function a {...}
console.log(a()); //输出 "function"
console.log(a); //输出 1
console.log(v);
/*
输出
Uncaught ReferenceError: v is not defined
(anonymous function) @ mycolor.html:15
*/
470JavaScript数据类型
注意 undefined 和 null 都是小写,并且。
var x,y; if(x == null){ document.write(x); } if(y == undefined){ document.write(y); }二者都会输出 undefined
469JavaScript数据类型
就算变量定义的是数组格式,typeof 返回的数据类型还是 object :
如果你要判断该对象是否为数组,可以使用以下两种方法:
1、使用 isArray 方法
var cars=new Array(); cars[0]="Saab"; cars[1]="Volvo"; cars[2]="BMW"; // 判断是否支持该方法 if (Array.isArray) { if(Array.isArray(cars)) { document.write("该对象是一个数组。") ; } }2、使用 instanceof 操作符
var cars=new Array(); cars[0]="Saab"; cars[1]="Volvo"; cars[2]="BMW"; if (cars instanceof Array) { document.write("该对象是一个数组。") ; }468JavaScript数据类型
最常用的对象创建方式:
第一种:
function Demo(){ var obj=new Object(); obj.name="张思"; obj.age=12; obj.firstF=function(){ } obj.secondF=function(){ } return obj; } var one=Demo(); // 调用输出 document.write(one.age);第二种:
function Demo(){ this.name="张思"; this.age=12; this.firstF=function(){ } this.secondF=function(){ } } var one=new Demo // 调用输出 document.write(one.age);467JavaScript数据类型
数组有四种方式:
var arr1 = new Array('a', 'b', 'c'); //这是一个预定义的数组,在创建时初始化 var arr2 = ['a', 'b', 'c' ]; //同样是在创建时初始化,但是这种创建更为简洁直观 var arr3 = new Array( ); var arr4 = [ ]; //这两种是创建空的数组在数组操作中,最值得注意的是下标的使用,容易出错
对象的创建,一般推荐使用
var people = {name : 'Tom', age : 21 , eat : function(){ } }也可先创建对象再追加属性和方法
var people = new Object(); people.name = 'Tom'; people.age = 21; people.eat = function(){ }466JavaScript变量
JavaScript 允许重复声明变量,后声明的覆盖之前的
JavaScript 允许重复定义函数
JavaScript 没有重载这个概念,它仅依据函数名来区分函数。
后定义的同名函数覆盖之前的,与参数无关。
function test() { console.log("test"); } test(); //输出 "test arg0 + undefined" function test(arg1) { console.log("test arg" + arguments.length + " + " + arg1); } test(1,2); //输出 "test arg2 + 1"实参个数如果比形参少,那么剩下的默认赋值为 undefined,如果实参传的比形参数量多,那么是全部都会被传进去的,只不过没有对应的形参可以引用(但可以用 arguments 来获取剩下的参数)。
function test(arg1) { for(var i=0; i<arguments.length; i++) { console.log(arguments[i]); } } test(1,2); //输出 1 2变量与函数重名的时候,变量生效
这涉及到了变量和函数的预解析:
var a = 100; function a() { return "function"; } console.log(a); //输出 100 console.log(a()); /* 报错 Uncaught TypeError: a is not a function (anonymous function) @test.html:9 */JS 中有两种函数,一种是普通函数,一种是函数对象。下面的这种就是“函数对象”,它实际上是声明一个匿名函数,然后将该函数的 init 方法赋值给该变量。
var a = 100; var a = function() { return "function"; } console.log(a); /* 输出 function() { return "function"; } */ console.log(a()); //输出 "function"函数与内部变量重名
定义普通函数,即在 window 变量下,定义一个 key,它的名字为该函数名,值为该函数的地址。函数内部的 this 指向 window 对象。
function a() { console.log(this); //输出 window{...} this.a = 1; //即 window.a = 1,此时window下的function a已经被该变量覆盖了。 var a = 5; //下面的这几个变量都是局部变量,仅在花括号范围内有效。 a = 10; var v = "value" return "function"; } console.log(a); //输出 function a {...} console.log(a()); //输出 "function" console.log(a); //输出 1 console.log(v); /* 输出 Uncaught ReferenceError: v is not defined (anonymous function) @ mycolor.html:15 */