JS之从构造函数上创建字面量值

字面量值:用于创建大多数原生对象值,而不必使用new Foo()这样的方式。大多数情况下,字面量语法与使用new操作符的效果相同。但也有例外:Number(),String()和Boolean()。

举个例子:

var myNumber = new Number(11);   //对象
 var myNUmberLiteral = 11;     //原始数值而非对象
 var myString =  new String('woman');  //对象
 var myStringLiteral = 'woman';    //原始字符值而非对象
 var myBoolean = new Boolean(false);   //对象
 var myBooleanLiteral = 'false';     //原始布尔值,而非对象
 var myObject = new Object();
 var myObjectLiteral = {};
 var myArray = new Array('foo','bar');
 var myArrayLiteral =['foo','bar'];
 var myFunction = new Function("x","y","return x*y");
 var myFunctionLiteral = function (x,y) {
     return x*y
 };
 var myRegExp = new RegExp('\bt[a-z]+\b');
 var myRegExpLiteral = /\b\t[a-z]+\b/;
 console.log(myNumber.constructor,myNUmberLiteral.constructor);
 console.log(myString.constructor,myStringLiteral.constructor);
 console.log(myBoolean.constructor,myBooleanLiteral.constructor);
 console.log(myObject.constructor,myObjectLiteral.constructor);
 console.log(myArray.constructor,myArrayLiteral.constructor);
 console.log(myFunction.constructor,myFunctionLiteral.constructor);
 console.log(myRegExp.constructor,myRegExpLiteral.constructor);
console.log(typeof myNumber, typeof myString, typeof  myBoolean, typeof myObject, typeof myArray, typeof myFunction,typeof myRegExp);
console.log(typeof myNUmberLiteral, typeof myStringLiteral, typeof myBooleanLiteral, typeof myObjectLiteral,typeof myFunctionLiteral, typeof myRegExpLiteral);

可以看到在控制台输出的结果,new字符后的Number(),String()和Boolean()不是变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值