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 ...
随机推荐
- File类之在指定目录中查找文件
package IoDemo; import java.io.File; /** * @Title:FileDemo2 * @Description:在指定的目录中查找文件 * @author Cra ...
- codeforces707B:Bakery
Description Masha wants to open her own bakery and bake muffins in one of the n cities numbered from ...
- 斯特林公式求N!
n!的长度为 ll ans = log10(2*pi*n)/2 + n*(log10(n/exp(1.0)))+1;
- matplotlib柱状图
import numpy as np import matplotlib.pyplot as plt size = 5 a = np.random.random(size) b = np.random ...
- Mac上的抓包工具Charles[转载]
今天就来看一下Mac上如何进行抓包,之前有一篇文章介绍了使用Fidder进行抓包 http://blog.csdn.net/jiangwei0910410003/article/details/198 ...
- 机器学习(六)—随机森林Random Forest
1.什么是随机采样? Bagging可以简单的理解为:放回抽样,多数表决(分类)或简单平均(回归): Bagging的弱学习器之间没有boosting那样的联系,不存在强依赖关系,基学习器之间属于并列 ...
- 交换排序—冒泡排序(Bubble Sort)算法原理以及Java实现
基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将 ...
- Kali 2.0 安装后的初始配置
准备 1.VMware Workstation 2.kali-linux-2.0-amd64.iso 安装 手动安装 VMware 创建新的虚拟机,先不导入ISO文件,系统选择Debian 7.x 6 ...
- POJ 3071 Football (概率DP)
概率dp的典型题.用dp[j][i]表示第j个队第i场赢的概率.那么这场要赢就必须前一场赢了而且这一场战胜了可能的对手.这些都好想,关键是怎么找出当前要算的队伍的所有可能的竞争对手?这个用异或来算,从 ...
- H5实现登录
1.主要就是获取cookie并每次发送请求时都带着:登录请求 2.添加HTTP Cookie管理器 3.登录请求时,加正则表达式提取器 取出返回的cookie ①使用charles抓包查看cookie ...