javascript——对象的概念——函数 2 (内建函数与类型转换)
javascript 有许多内建函数,用于各种操作,以下为常用的内建方法。
1、parseInt(object,int):将输入的 int 进制的值 object 转换为 10 进制的数值;
- object:输入要转换为数字的字符串、数字;
- int:表示 object 表示为 int 进制字符串;没有则如果 object 以 0x 开头,则表示 object 是十六进制数据;否则按十进制处理。
- 当 object 为一个完全可以转换为数字的字符串时,则转换为数字;
- 当 object 前面的部分可以转换为数字,而后面的无法转换为数字,则只转换前面的字符串;
- 当 object 的最开始的部分都无法转换为数字,则返回NaN;
- 即 javascript 将 object 数据从最开始的位置开始转换一直到遇到无法转换的数据停止。
例1:普通字符串转换为数字
parseInt(123abc); //报错
parseInt(123abc,16); //报错
parseInt(123); //
parseInt(123,8); //
parseInt(123,16); //
普通字符串转换为十进制数字
上述例子表明在 8 进制、10 进制中无法识别 abc ,所以只转换 123 ,而在16进制中可以识别所以全部转换。
例2:普通数字转换为数字
parseInt(123abc); //报错
parseInt(123abc,16); //报错
parseInt(123); //
parseInt(123,8); //
parseInt(123,16); //
普通数字转换为十进制数字
由此可以看出,输入参数为数字时和字符串完全不一样。为数字时,带有abc等字母,则javascript报错;而对于字符串中的字母即使无法转换也不会报错,而且还会将开始能转换的部分转换。
例3::开头特殊的 string 转换为数字
parseInt('010'); //
parseInt('0x10'); //
parseInt('010',8); //
parseInt('0x10',10); //
parseInt('0x10',16); //
开头特殊的string转换数字
对于 0 开头的字符串,javascript依然将其视为十进制;而对于0x开头的字符串,javascript将其视为16进制的数据,但若显式指定为10、8进制时,由于javascript只识别该进制下的0而无法识别10、8进制下的 x 因此只返回0;
例4:开头特殊的 number 转换为数字
parseInt(010); //
parseInt(010,8); //NaN
parseInt(010,10); //
parseInt(010,16); //
parseInt(0x10); //
parseInt(0x10,10); //
parseInt(0x10,8); //
parseInt(0x10,16); //
parseInt(0x10,10); //
开头特殊的数字转为十进制数字
对于数字而言,javascript能够识别以0开头的8进制数字和以0x开头的16进制数字,而且根据例子,在实际应用当中要么对开头特殊的数字不要显式指定输入数据的进制,要么不要以特殊开头而指定输入数据的进制。
- 要特别注意,parseInt(object,int)是将不同进制的数据转换为十进制。即最终结果一定是十进制的。
2、parseFloat():与 parseInt()类似
第一个出现的小数点是有效字符。如果有两个小数点,第二个小数点将被看作无效的。parseFloat() 会把这个小数点之前的字符转换成数字。这意味着字符串 "11.22.33" 将被解析成 11.22。使用 parseFloat() 方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,而不是用八进制或十六进制。该方法会忽略前导 0,所以八进制数 0102 将被解析为 102。对于十六进制数 0xA,该方法将返回 0.
3、toString()
Boolean :返回 true、false;
Number 类型的 toString(int)
例:
结果与parseInt()类似,同样告诉我们特殊的开头与显式指定进制最好不要一起使用,否则很容易出错。
4、isNaN(int) 判断参数是否为数字类型的不是数字。
isNaN(NaN); //true
isNaN(1.1); //false
5、eval():将输入字符串当做javascript代码来执行。
例:eval('document.writeln("你好!<br/>")');
eval常用于将服务器端发送来的json文本转换为javascript对象。
格式:evel("("+json+")");
例:
6、alert();该方法会堵塞线程,因此要避免在AJAX中使用该方法。
7、 encodeURIComponent(value)、 encodeURI(value):将客户端的数据编码为ASCII码,以便向服务器端发送数据。因为网络无法发送非ASCII码的数据。
区别:
- encodeURIComponent(value):对整个网址编码;
- encodeURI(value):只对路径、文件名、请求字符串编码。如只对http://i.cnblogs.com/EditPosts.aspx?postid=4045710问号后面的编码。
一般在客户端编码一次,数据到达服务器端后会自动解码一次。如:
例1:encodeURI('http://i.cnblogs.com/EditPosts.aspx?postid=4045710');
//"http://i.cnblogs.com/EditPosts.aspx?postid=4045710"
例2:encodeURI('http://i.cnblogs.com/EditPosts.aspx?name=小强');
//"http://i.cnblogs.com/EditPosts.aspx?name=%E5%B0%8F%E5%BC%BA"
如上,javascript只对中文等非 ASCII 的数据编码。到达服务器端后服务器自动解码一次,因此在服务器端只需 request.getParameter("name");即可获取数据。
- encodeURIComponent(value)、 encodeURI(value)使用的是 UTF-8 编码规则来编的。当服务器端解码规则不是 UTF-8 就会得到乱码出错。因此可以采用编码两次的方式避免这种错误。
如下:
编码两次也就是意味着解码两次。第一遍编码,因为第一遍编码,你的参数内容便不带有中文等多字节字符了,成了纯粹的 Ascii 字符串,然后在编码一次,到达服务器端后,服务器会自动解码一次,而这次自动的解码不管是按 GBK 还是 UTF-8 还是 ISO-8859-1 都好,都能够正确的由第二次编码得到的数据解码为第一次编码得到的数据。再进行第二次解码(此次是你的第一次解码,因为上一个解码是服务器自动解码的),此次解码按照 UTF-8 解码即可。
亦或者直接指定服务器端的解码规则为 UTF-8,这样就只需要在客户端编码一次了。
8、decodeURI(value)、decodeURIComponent(value):用于解码,同样采用 UTF-8 规则。
9 、强制类型转换
ECMAScript 中可用的 3 种强制类型转换如下:
- Boolean(value):把给定的值转换成 Boolean 型;
- Number(value): 把给定的值转换成数字(可以是整数或浮点数);
- String(value): 把给定的值转换成字符串;
(1)、Boolean(value)
以下内容将强制转换为false:
空字符串'';null;undefined;数字0;NaN;false;
对于其他的内容将返回 true
(2)、Number(value)
Number() 函数的强制类型转换与 parseInt() 和 parseFloat() 方法的处理方式相似,只是它转换的是整个值,而不是部分值。parseInt() 和 parseFloat() 方法只转换第一个无效字符之前的字符串,因此 "1.2.3" 将分别被转换为 "1" 和 "1.2"。而用 Number() 进行强制类型转换,要么全部转换,要么直接返回NaN。
(3)、String(value)
可把任何值转换成字符串。要执行这种强制类型转换,只需要调用作为参数传递进来的值的 toString() 方法.
10、字符串转换的小技巧
- 将内容为数字的字符串转换为数字:直接与1相乘。
例:
- 将其他类型转换为字符串类型:与空字符串''相连
例:
javascript——对象的概念——函数 2 (内建函数与类型转换)的更多相关文章
- javascript——对象的概念——函数 1 (函数对象的属性和方法)
一.创建函数 函数是一种对象:Function类 是对象,可以通过 Function 实例化一个函数,不过最多的还是利用 function 来创建函数. 方式一:利用 Function类 来实例化函数 ...
- javascript——对象的概念——函数 3 (使用技巧)
1.回调函数:将函数A传给函数B,由函数B来执行A,则称A为回调函数. 例1: 例2 function addone(a){;}; //定义一个回调函数 function mulitiply(a,b, ...
- javascript——对象的概念——创建对象与销毁对象
一.创建对象 1.创建空对象 方式一: var o ={};o; //Object {} typeof(o); //"object" 方式二: var o=new Object() ...
- javascript——对象的概念——Object(未完)
http://www.blogjava.net/zkjbeyond/archive/2006/04/16/41336.html javascript中对象只包括属性和方法两种成员.ECMA-262 把 ...
- javascript——对象的概念——内建对象
包括内建对象的所有对象都是Object对象的子对象. 1.Array():构建数组的内建构造器函数 例:创建数组方式有两种: 2.Boolean:是对象,与基本数据类型 布尔值 不相同 例:创建Boo ...
- 前端学习 第二弹: JavaScript中的一些函数与对象(1)
前端学习 第二弹: JavaScript中的一些函数与对象(1) 1.apply与call函数 每个函数都包含两个非继承而来的方法:apply()和call(). 他们的用途相同,都是在特定的作用域中 ...
- javascript对象初探(一)--- 构造器函数
我们可以通过构造器函数(简称构造函数)来创建对象: function Her(){ this.child = 'Jon'; } 为了使用该函数来创建对象,我们需要使用new操作符,例如: var sh ...
- 函数可以作为Javascript对象(哈希表)的键吗
一般Javascript书在讲解对象时,都指出Javascript中的对象可以作为哈希表,存储键值数据.通常情况下,键为字符串,如果键是数字的话,实际上在内部也会转换为字符串. 比如 var o = ...
- JavaScript总体的介绍【JavaScript介绍、定义函数方式、对象类型、变量类型】
什么是JavaScript? 我们可以从几个方面去说JavaScript是什么: 基于对象 javaScript中内置了许多对象供我们使用[String.Date.Array]等等 javaScrip ...
随机推荐
- NOI2013
Bless All 其实已经没有什么遗憾了呢 下一篇就是OI 再见吧2333
- review17
关于构造方法Random(long seed)的理解 无参构造方法使用的默认参数是系统当前的毫秒数.使用同一数值的种子参数,生成的随机数也是一样的. 代码如下所示: import java.util. ...
- PHP的mail()函数可以实现直接用脚本发送邮件
PHP的mail()函数可以实现直接用脚本发送邮件. 用mail()函数发送邮件之前,首先需要在php.ini文件里面设置一下邮件服务属性,主要的设置选项如下: 属性 缺省值 说明 Changeabl ...
- Merge 2
在SQL2008中,新增了一个关键字:Merge,这个和Oracle的Merge的用法差不多,只是新增了一个delete方法而已.下面就是具体的使用说明: 首先是对merge的使用说明: merge ...
- tlflearn 编码解码器 ——数据降维用
# -*- coding: utf-8 -*- """ Auto Encoder Example. Using an auto encoder on MNIST hand ...
- Unity自带寻路Navmesh
自带寻路Navmesh的三大组件: 1.Nav Mesh Agent:主要挂在寻路物体上 2.Off Mesh Link:实现区域转移功能(例如,有时不一定只是在地面上进行寻路,可能有些高高的平台,平 ...
- hdu1085 Holding Bin-Laden Captive!(母函数)
简单的母函数应用. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstrin ...
- 使用zip()并行迭代
- [转载] 最简单的基于FFmpeg的AVDevice例子(读取摄像头)
=====================================================最简单的基于FFmpeg的AVDevice例子文章列表: 最简单的基于FFmpeg的AVDev ...
- 以前的实验博客地址,以前使用csdn
实验一木马分析(隐藏分析)实验 http://blog.csdn.net/qq_30600405/article/details/78360599 实验二木马分析(控制分析)实验和实验三冰河木马实验 ...