标签:
var value1 = 10; var value2 = value1; value2 += 20;
console.log(value1); //10 console.log(value2); //30
var obj1 = {}; var obj2 = obj1; obj1.name = "我是你家隔壁小曾";
console.log(obj1.name); //我是你家隔壁小曾 console.log(obj2.name); //我是你家隔壁小曾
1 var str = "hello world"; 2 var num = 100; 3 var boo = true; 4 var u; 5 var fn = function(){}; 6 var n = null; 7 var obj = {}; 8 var arr = [];
10 typeof str // "string" 11 typeof num // "number" 12 typeof boo // "boolean" 13 typeof u // "undefined" 14 typeof fn // "function" 15 typeof n // "object" 16 typeof obj // "object" 17 typeof arr // "object"
从上面的例子中不难看出 typeof 操作符是确定一个变量是字符串、布尔、数值,还是undefined的最佳工具。但如果变量的值是一个对象或null,则 typeof 操作符会统一返回 "object"。
通常我们并不想知道某个值是对象,其实我们是想知道它具体是什么类型的对象,这个时候我们可以使用 instanceof 操作符。
var arr = []; var obj = {}; var date = new Date(); var fn = function(){}; var str = new String(‘123‘); console.log(arr instanceof Array); //true console.log(obj instanceof Object); //true console.log(date instanceof Date); //true console.log(fn instanceof Function); //true console.log(str instanceof String); //true
如果变量是给定引用类型的实例,那么 instanceof 操作符就会返回 true。而且所有引用类型的值都是Object的实例。因此,检测一个引用类型值和Object构造函数时,instanceof 操作符始终返回true。
如果使用 instanceof操作符检测基本类型的值,则该操作符始终返回false,因为基本类型值不是对象。
每一点滴小的知识积累,才会造就质的飞跃,坚持和热爱。
标签:
原文地址:http://www.cnblogs.com/jimmzy/p/5103736.html