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 ...
随机推荐
- 批量测试邮箱登录python脚本
---恢复内容开始--- #!/usr/bin/env python #-*- coding:utf-8 -*- import smtplib import sys import time impor ...
- C/C++输入数组
; printf("please enter the number:\n"); scanf("%d",&n); int *number=new int[ ...
- thinkphp中composer方式安装的插件如何使用
thinkphp中composer方式安装的插件如何使用 一.总结 一句话总结:任何东西都是可以百度或者google搜到的,要自己先想怎么解决,解决不出来迅速百度,不要自己臆断 1.在tp5框架的什么 ...
- Python的常见几道数学运算题
一 python 相关数学函数及使用示例 常用的数学函数: ceil(x) 取顶 floor(x) 取底 fabs(x) 取绝对值 factorial (x) 阶乘 hypot(x,y) sqrt( ...
- spring:自定义限定符注解@interface, 首选bean
spring:自定义限定符注解@interface, 首选bean 1.首选bean 在声明bean的时候,通过将其中一个可选的bean设置为首选(primary)bean能够避免自动装配时的歧义性. ...
- spring boot: spring Aware的目的是为了让Bean获得Spring容器的服务
Spring Aware的目的是为了让Bean获得Spring容器的服务 //获取容器中的bean名称import org.springframework.beans.factory.BeanName ...
- MySQL 分区知识点(三)
前言: MySQL 分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张独立的表, 从 information_schema.INNODB_SYS_TABLES 系统表可以看到每个分 ...
- 如果看看机器ip和域名ip
1.如果查看一个机器IP ifconfig或hostname -i //linux ipconfig //windows 2.查看一个域名对应ip ping www.baidu.com 下面会显示域名 ...
- js动态拼接参数到请求的url上
var queryConfig={ "page" : "index", "method" : 2, //1:按照方法A查看 2:按照方法B查 ...
- Spring_学习_00_资源帖
一.官方文档 1.Spring Framework Documentation 二.参考书籍 1.< Spring实战 (第四版)> 三.参考资料