关闭

javascript中一切皆对象?基本数据类型也是对象吗?

标签: javascript数据类型对象
71人阅读 评论(0) 收藏 举报
分类:

学习js经常看到这句话——Javascript里面所有的数据类型都是对象 。

1.我们知道js ES5中数据类型分为基本数据类型和复杂数据类型。

基本类型有5类,分别是null,undefined,number,string,boolen。

复杂数据类型是object;

2.基本数据类型又被成为值类型 ; 复杂数据类型又被成为引用类型;

3.是不是所有的数据类型都是对象?明显不是。只有复杂数据类型是对象。

4.举个栗子;

String.prototype.str=function()
{
return 'hello';
}
var str1=5;
str1 instanceof String //结果:false
typeof str1  	       //'string'
str1.str() 	       //hello 可以调用到String.prototype挂载的方法
var str2=new String('a_string');
typeof str2            //object
str2.str()             //hello
也可以调用到Number.prototype挂载的方法

所以,在不需要明确判断类型字符串的时候,其实用法上基本没区别。

区别在于,通过对象类型初始化的(typeof显示object) 可以挂载任意方法。而原始类型却不能。
str2.bb=function()
{
return 'bb'
}
str2.bb()   //bb
str1.bb=function(){
return 'bb'
}
str1.bb()  //Uncaught TypeError: str1.bb is not a function(…)
除了undefined 和 null 不能直接调用属性,其它的基本数据类型都可以直接调用属性,不存在则返回undefined

所以说js是基于对象的脚本语言。

5.另一个栗子;
var num = new Number(7);

console.log(num instanceof Number);  //true
console.log(typeof a);                            // "object"


var num = 7;

console.log(num instanceof Number ); //false
console.log(typeof num);                       //"number"

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:130次
    • 积分:22
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档