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 (内建函数与类型转换)的更多相关文章

  1. javascript——对象的概念——函数 1 (函数对象的属性和方法)

    一.创建函数 函数是一种对象:Function类 是对象,可以通过 Function 实例化一个函数,不过最多的还是利用 function 来创建函数. 方式一:利用 Function类 来实例化函数 ...

  2. javascript——对象的概念——函数 3 (使用技巧)

    1.回调函数:将函数A传给函数B,由函数B来执行A,则称A为回调函数. 例1: 例2 function addone(a){;}; //定义一个回调函数 function mulitiply(a,b, ...

  3. javascript——对象的概念——创建对象与销毁对象

    一.创建对象 1.创建空对象 方式一: var o ={};o; //Object {} typeof(o); //"object" 方式二: var o=new Object() ...

  4. javascript——对象的概念——Object(未完)

    http://www.blogjava.net/zkjbeyond/archive/2006/04/16/41336.html javascript中对象只包括属性和方法两种成员.ECMA-262 把 ...

  5. javascript——对象的概念——内建对象

    包括内建对象的所有对象都是Object对象的子对象. 1.Array():构建数组的内建构造器函数 例:创建数组方式有两种: 2.Boolean:是对象,与基本数据类型 布尔值 不相同 例:创建Boo ...

  6. 前端学习 第二弹: JavaScript中的一些函数与对象(1)

    前端学习 第二弹: JavaScript中的一些函数与对象(1) 1.apply与call函数 每个函数都包含两个非继承而来的方法:apply()和call(). 他们的用途相同,都是在特定的作用域中 ...

  7. javascript对象初探(一)--- 构造器函数

    我们可以通过构造器函数(简称构造函数)来创建对象: function Her(){ this.child = 'Jon'; } 为了使用该函数来创建对象,我们需要使用new操作符,例如: var sh ...

  8. 函数可以作为Javascript对象(哈希表)的键吗

    一般Javascript书在讲解对象时,都指出Javascript中的对象可以作为哈希表,存储键值数据.通常情况下,键为字符串,如果键是数字的话,实际上在内部也会转换为字符串. 比如 var o = ...

  9. JavaScript总体的介绍【JavaScript介绍、定义函数方式、对象类型、变量类型】

    什么是JavaScript? 我们可以从几个方面去说JavaScript是什么: 基于对象 javaScript中内置了许多对象供我们使用[String.Date.Array]等等 javaScrip ...

随机推荐

  1. Spring初学之使用外部配置文件dataSource

    一.在Spring的基础上还要另外导入c3p0包和mysql的驱动包. 二.配置文件, jdbc.propertices:这里只做了一些简单配置 user=root password=123 driv ...

  2. RtlWerpReportException failed with status code :-1073741823

    在release下程序运行总是崩溃:debugView输出了这个崩溃信息, 1. 一开始是release看崩溃,各种二分法找崩溃点,太玄没找到: 2. 终于想到可以调试,我草,调试一下瞬间发现某个cl ...

  3. Codeforces 859E Desk Disorder:并查集【两个属性二选一】

    题目链接:http://codeforces.com/problemset/problem/859/E 题意: 有n个人,2n个座位. 给出这n个人初始的座位,和他们想坐的座位. 每个人要么坐在原来的 ...

  4. Asp.net 检测到有潜在危险的 Request.From值

    因为Asp.net对客户端提交的数据进行了基本的安全验证,检测是否有最基础的 sql注入 或者 xss跨站脚本攻击代码. 如果你提交了:</div><script type=&quo ...

  5. MinGW main()

    MinGW没有wmain入口函数,为了获取宽字符的参数,可以用系统API函数GetCommandLineW. main.cpp #include <iostream> #include & ...

  6. JVM和Dalvik VM的简要区别

    一.结构 JVM是栈堆   Dalvik VM是寄存器 二.编译 JVM:.java>.class>.jar Dalvik VM:.java>.class>.dex>.o ...

  7. dirent.h

    #include <dirent.h> 是POSIX.1标准定义的unix类目录操作的头文件,包含了许多UNIX系统服务的函数原型,例如opendir函数.readdir函数. opend ...

  8. Java 面向对象编程 tricks

    方法中描述了参数: 1. 构造器重载 重载构造器时,使用描述了参数的静态工厂方法名,这样做的意义何在呢?就在于为动作赋予意义,提升代码的可解释性: 传统的实例化方式: Complex fulcrumP ...

  9. nginx中关于并发数的问题worker_connections,worker_processes

    我认为,要搞清楚这个公式是否正确,以及如何计算的,那首先要对nginx的各个配置说明有清晰的认识: 从用户的角度,http 1.1协议下,由于浏览器默认使用两个并发连接,因此计算方法: nginx作为 ...

  10. LeetCode Valid Palindrome II

    原题链接在这里:https://leetcode.com/problems/valid-palindrome-ii/description/ 题目: Given a non-empty string  ...