新普京网站-澳门新普京 > 新普京网站 > js类型转换与引用类型详解

js类型转换与引用类型详解

2019/12/29 18:01

大器晚成、类型调换

1.转换到字串 ECMAScript的Boolean值、数字和字串的原始值的有意思之处在于它们是伪对象,那意味着它们其实具有属性和情势。 如: 复制代码 代码如下:var sColor = "blue";alert;//outputs "4"简来说之,3种重大的原始值Boolean值、数字和字串都有toString(卡塔尔(قطر‎方法。ECMAScript定义的全体指标都有toString(卡塔尔(قطر‎方法,不论它是伪对象,还是确实对象。

Boolean型的toString(卡塔尔方法只是出口"true"或"false",结果由变量的值决定: 复制代码 代码如下:var bFound = false;alert;//outputs "false"Number类型的toString(卡塔尔(قطر‎方法比较特别,它有二种形式,即暗中同意形式和基方式,选用暗中同意情势,toString(卡塔尔国方法只是用相应的字符串输出数字值。 复制代码 代码如下:var iNum1 = 10;var fNum2 = 10.0;alert; //outputs "10"alert; //outputs "10"选拔Number类型的toString输出数字。 复制代码 代码如下:var iNum = 10;alert; //outputs "1010"alert; //outputs "12"alert; //outputs "A"2.转变到数字 ECMAScript提供了三种把非数字的原始值调换到数字的法子,即parseInt。 注意:唯有对String类型调用那几个主意,本事正确运行对其它类型再次来到的都以NaN。

诸如: 复制代码 代码如下:var iNum1 = parseInt;//returns 1234var iNum2 = parseInt; //returns 10var iNum3 = parseInt; //returns 22var iNum4 = parseInt; //returns NaNparseInt(卡塔尔国方法还应该有基情势,能够把二进制、八进制、十二进制或然其余任何进制的字符串调换到十进制整数。第一个参数钦定按哪生机勃勃种进制来分析。 复制代码 代码如下:var iNum1 = parseInt;// returns 175var iNum2 = parseInt; // returns 2var iNum3 = parseInt; //returns 8var iNum4 = parseInt; //returns 10表明:假使十进制数满含前导0,那么最棒利用基数10,不然拿到的是八进制的值。 复制代码 代码如下:var iNum1 = parseInt; // returns 8var iNum2 = parseInt; //returns 8var iNum3 = parseInt;//returns 10parseFloat方法的管理方式相通,从地点0开端翻看各类字符,直到找到第三个非有效的字符结束,然后把该字符早先的字串转变到数字。对于那个办法来讲,第一个冒出的小数点是立竿见影字符。要是用三个小数点,第叁个小数点将被看作无效的。使用该办法的另一个不一样之处在于,字串必须以十进制方式表示浮点数。 复制代码 代码如下:var fNum1 = parseFloat; //returns 1234.0var fNum2 = parseFloat; //returns NaNvar fNum3 = parseFloat; //returns 22.5var fNum4 = parseFloat;//returns 22.34var fNum5 = parseFloat;//returns NaNvar fNum6 = parseFloat;//returns NaN3.强制类型转变 ECMAScript中可用的3种免强类型调换如下:

把给定的值转变到Boolean型。 当要退换的值是至稀有二个字符的字符串、非0数字或对象时,Boolean(卡塔尔(قطر‎函数将重临true。假使该值是空字符串、数字0、undefined或null,它将赶回false。 如: 复制代码 代码如下:var b1 = Boolean; // false;var b2 = Boolean;//truevar b3 = Boolean;//truevar b4 = Boolean;//falsevar b5 = Boolean;//falsevar b6 = Boolean;//true 把给定的值转换到数字。 还记得parseInt方法只转变第四个不算字符早前的字符串,因而"4.5.6"将被撤换为"4.5"。用Number(卡塔尔国举办强制类型转变,"4.5.6"将回到NaN,因为全数字符串值不能够调换到数字。如若字符串能被完全地转变,Number方法依然调用parseFloat(State of Qatar方法。 如: 复制代码 代码如下:Number;//0Number;//1Number;//NaNNumber;//0Number;//5.5Number;//56Number;//NaNNumber;//NaNNumber.String 把给定的值转变到字串。 与调用toString(卡塔尔国方法的头一无二分化之处在于,对null或undefined值抑遏类型转变能够生成字符串而不抓住错误: 复制代码 代码如下:var s1 = String;//"null"var oNull = null;var s2 = oNull.toString(卡塔尔(قطر‎;//causes an error二、援引类型 引用类型平常叫作类,也便是说,境遇援引值时,所拍卖的正是目的。ECMAScript定义了“对象定义”,逻辑上等价于别的程序设计语言中的类。

1.Object类 ECMAScript中的全体类都由这几个类世袭而来,Object类中的全数属性和办法都会冒出在此外类中。

Object类的习性:

.Constructor----对创制对象的函数的引用。对于Object类,该指针指向原始的object.Prototype----对该对象的目的原型的征引。对于有所的类,它暗许再次回到Object对象的一个实例。

Object类的章程:

.HasOwnProperty----判定目的是还是不是有某些特定的质量。必须用字符串钦点该属性(比方:o.hasOwnProperty.IsPrototypeOf----剖断该指标是还是不是为另一个对象的原型。

.PropertyIsEnumerable----决断给定的品质是还是不是足以用for..in语句实行枚举。

----重回对象的原始字符串表示。差异的ECMAScript达成全数分歧的值。

----重临最相符该指标的原始值。对于广大类,该方法再次来到的值都与toString(卡塔尔(قطر‎的再次回到值相近。

2.Boolean类 在ECMAScript中超少使用Boolean对象,固然使用,也没有错明白。 举例: 复制代码 代码如下:var oFalseObject = new Boolean;var bResult = oFalseObject && true;//outputs true;原因:在Boolean表达式中,全部指标都会被自动转变为true。

3.Number类 Number.MAX_VALUE等等非凡值都Number类的静态属性。要赢得数字对象的Number原始值,只必要采纳valueOf(卡塔尔国方法: var iNumber = oNumberObject.valueOf(卡塔尔国; 除从Object类世襲的科班措施外,Number类还应该有多少个管理数值的专项使用方法。

澳门新普京 ,toFixed(卡塔尔(قطر‎方法: 再次回到的是具有钦定位数小数的数字的字符串表示。方法能代表具备0到二十位小数的数字,超过那么些范围的值会引发错误。 如: 复制代码 代码如下:var oNumberObject = new Number;aler(oNumberObject.toFixed;//outputs "99.00"toExponential(卡塔尔(قطر‎方法: 重临的是用科学记数法表示的数字的字符串格局。该方式也许有一个参数,钦点要出口的小数的位数。例如:复制代码 代码如下:var oNumberObj = new Number;alert(oNumberObj.toExponential;//outputs "9.9e+1"toPrecision(卡塔尔方法: 依据最有意义的花样来回到数字的预订格局或指数方式。它有两个参数,即用于表示数的数字总的数量。 复制代码 代码如下:var oNumberObj = new Number;alert(oNumberObj.toPrecision;//outputs "1e+2" ==100足以看来,toPrecision(State of Qatar方法会对数进行舍入,进而拿到尽只怕左近真实值的数。 如:复制代码 代码如下:var oNumberObj = new Number;alert(oNumberObj.toPrecision;// outputs "99"alert(oNumberObj.toPrecision;// outputs "99.0"toFixed和toPrecision(卡塔尔方法都会开展舍入操作,以便用科学的小数位数精确地代表二个数。

新普京网站 ,toLocaleString(卡塔尔方法: 能够在页面上格式显示,如5210.50显得为5,210.50,可是假若在利用其值时,应该用parseFloat.value.replace;的花样替换掉逗号,后获得其值。

注意:与Boolean对象日常,Number对象也相当的重视,可是相应少用这种对象,以幸免发出地下的主题素材。只要可能,都采取数字的原始表示法。

4.String类 String对象的valueOf方法都会回去String型的原始值: 复制代码 代码如下:alert == oStringObj.toString;//outputs "true"String类拥有属性length,它是字符串的字符个数: 复制代码 代码如下:var oStringObj = new String;alert;outputs "11"注意:就算字符串包蕴双字节的字符,各个字符也只算叁个字符。

charAt(卡塔尔方法: 再次回到的是带有钦赐地点处的字符的字符串: 复制代码 代码如下:var oStringObj = new String;alert;outputs "e"charCodeAt(卡塔尔国方法: 再次来到的是包罗钦命地点处的字符代码的字符串: 复制代码 代码如下:var oStringObj = new String;alert(oStringObj.charCodeAt;outputs "101"concat(State of Qatar方法: 用于把叁个或多个字符串连接到String对象的原始值上。原String对象不改变。复制代码 代码如下:var oStringObj = new String;var sResult = oStringObj.concat;//oStringObj+"world";更不可胜计alert;//outputs "hello world"alert;//outputs "hello"indexOf方法再次回到的都以点名的子串在另叁个字符串中之处。那多少个格局的分歧之处大于,indexOf起头检索子串,而lastIndexOf(卡塔尔(قطر‎则是从字串的最后最初检索子串的。

localeCompare(卡塔尔(قطر‎,对字符串进行比较。该方法有三个参数--要实行相比的字符串,重回的是下列3个值之生龙活虎: 1.要是String对象依据字母顺序排在参数中的字符串在此之前,重回负数(最不足为道的是-1,可是真的的回来由达成调节的)。 2.比如String对象等于参数中的字符串,重回0。 3.假使String对象根据字母顺序排在参数中的字符串之后,再次来到正数

slice方法: 那五个章程重临的都以要拍卖的字符串的子串,都选取三个或七个参数。第3个参数是要收获的子串的苗头地方,第一个参数是要获取子串终止前的义务。假诺轻易第贰个参数,终止位就默以为字符串的尺寸。那多少个法子都不退换String对象自己的值。 复制代码 代码如下:var oStringObj = new String;alert;//outputs "lo world"alert卡塔尔(قطر‎;//outputs "lo w"注意:对于负数参数,slice(卡塔尔国方法会用字符串的长短加上参数,substring。 复制代码 代码如下:var oStringObj = new String;alert;//outputs "rld"也等于反向取alert(oStringObj.substring;//outputs "hello world"alert(oStringObj.slice;//outputs "lo w"alert(oStringObj.substring;//outputs "hel" substring(卡塔尔总是把超小的数字作为起初位,极大的数字作为终止位。toLowerCase、toUpperCase: 前二种艺术把字符串调换到全小写的,后三种情势用于把字符串转换到全大写的。toLocalLowerCase方法是依照特定区域落到实处的。

牢牢记住:String类的有着属性和措施都可使用于String原始值上,因为它们是伪对象。

5.instanceof运算符 在运用typeof运算符时选用引用类型存款和储蓄值会现出二个难题,无论援用的是怎么着类型的对象,它都回来"object"。instanceof方法要示开垦者显然地鲜明对象为某一定类型。如: 复制代码 代码如下:var oStrObj = new String; alert(oStrObj instanceof String卡塔尔;//outputs "true"

上一篇:JSON的解析方式,jquery解析JSON数据示例代码_jquery_脚本之家【新普京网站】 下一篇:没有了