5.6 基本包装类型

Posted caijw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.6 基本包装类型相关的知识,希望对你有一定的参考价值。

5.6 基本包装类型(Boolean,Number,String)
基本类型不是对象为什么会有方法呢?(黑人?)
后台处理了一系列的操作,以下就是例子,创建后立即销毁

var s1 = "some text";
var s2 = s1.substring(2);
===
var s1 = new String("some text");
var s2 = s1.sbustring(2);
s1 = null;

引用类型和基本包类型的主要区别就是对象的生存周期
引用类型:执行流离开当前作用域之前,都一直保存在内存中
基本类型包:只存在于代码执行的瞬间,然后立即销毁

var s1 = "some text";
s1.color = "red";
l(s1.color);//undefined

===
//使用new调用基本包类型的构造函数和直接调用痛么的转型函数是不一样的。
var value = "24";
var number = Number(value);
l(typeof number);//number
var number = new Number(value);
l(typeof number);//object

5.6.1 Boolean类型(建议永远不要用Boolean对象)
Boolean 重写了valueOf方法: 返回基本类型true,false
重写了toString方法, 返回字符串"true","false"

var falseObject = new Boolean(false);
var result = falseObject && true;
l(result);//true

var falseValue = false;
result = falseValue && true;
l(result);//false

5.6.2 Number类型
valueOf: 返回对象基本类型的数值
toString: 字符串形式的数值
toLocalString: 字符串形式的数值
toFixed: 会按照指定的小数位返回数值的字符串表示
toExponential: 返回以指数表示法(e表示法)
toPrecision: 可能会返回固定大小的个数,也可能返回指数格式,根据接受的参数(数值的所有位数)

//toString
var num = 10;
l(num.toString());//10
l(num.toString(2));//1010
l(num.toString(8));//12
l(num.toString(10));//10
l(num.toString(16));//a
//toFixed
var num = 10;
l(num.toFixed(2))//10.00
//toExponential
var num = 10;
l(num.toExponential(1))//1.0e+1
?var num = 99;
//toPrecision
l(num.toPrecision(1));//1e+2
l(num.toPrecision(2));//99
l(num.toPrecision(3));//99.0

以上是关于5.6 基本包装类型的主要内容,如果未能解决你的问题,请参考以下文章

5.6 数据类型和应用

Unity中Shader的三种基本类型

javascript之基本包装类型

基本包装类型

js中基本包装类型详情

JS基础语法---基本包装类型