2.4.escape()
语法
escape(string)
参数 描述
string 必需。要被转义或编码的字符串。
返回值
已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。
说明
该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。
注意:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和
decodeURIComponent() 替代它。
示例:
<script type="text/javascript"> document.write(escape("Visit W3School!") + "<br />") document.write(escape("?!=()#%&")) </script>
结果:
Visit%20W3School%21
%3F%21%3D%28%29%23%25%26
2.5.isFinite()
它的作用就是用来判断参数是否位于最小值和最大值之间,如果位于之间就会返回true,否则就会返回false。
在ECMAScript中能够表示的最小的数值保存在Number.MIN_VALUE中,在大多数浏览器中这个值是:5e-324;能够表示的最大的数值保存在Number.MAX_VALUE中,在大多数浏览器中,这个值是1.7976931348623157e+308,如果数值超出了范围,该值就会自动转换为一个特殊值infinity,正数的话前面会是Infinity,如果是负数的话会转换为-Infinity
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var num = 1123; alert(num);//1123 var num1 = Number.MAX_VALUE+Number.MAX_VALUE; alert(num1);//Infinity alert(isFinite(num));//true alert(isFinite(num1));//false </script> </head> <body> </body> </html>
可以用来判断该值是否在正常的数值范围内
2.6.isNaN()
定义和用法
isNaN()
函数用于检查其参数是否是非数字值。
isNaN
的用法:检测当前值是否不是有效数字,返回true代表不是有效数字,返回false是有效数字
//=>语法:isNaN([value]) var num=12; isNaN(num); //->检测num变量存储的值是否为非有效数字 false isNaN('13') =>false isNaN('你好呀') =>true isNaN(true) =>false isNaN(false) =>false isNaN(null) =>false isNaN(undefined) =>true isNaN({age:9}) =>true isNaN([12,23]) =>true isNaN([12]) =>false isNaN(/^$/) =>true isNaN(function(){}) =>true
2.6.1.isNaN检测的机制:首先验证当前要检测的值是否为数字类型的,如果不是,浏览器会默认的把值转换为数字类型
[字符串转数字] Number('13') ->13 Number('13px') ->NaN 如果当前字符串中出现任意一个非有效数字字符,结果则为NaN Number('13.5') ->13.5 可以识别小数 [布尔转数字] Number(true) ->1 Number(false) ->0 [其它] Number(null) ->0 Number(undefined) ->NaN
把引用数据类型值转换为数字:先把引用值调取toString转换为字符串,然后再把字符串调取Number转换为数字
2.6.2.当前检测的值已经是数字类型,是有效数字返回false,不是返回true(数字类型中只有NaN不是有效数字,其余都是有效数字)
parseInt / parseFloat,等同于Number,也是为了把其它类型的值转换为数字类型
和Number的区别在于字符串转换分析上
Number:出现任意非有效数字字符,结果就是NaN
parseInt:把一个字符串中的整数部分解析出来,parseFloat是把一个字符串中小数(浮点数)部分解析出来
parseInt('13.5px') =>13 parseFloat('13.5px') =>13.5 parseInt('width:13.5px') =>NaN
从字符串最左边字符开始查找有效数字字符,并且转换为数字,但是一但遇到一个非有效数字字符,查找结束
因此,使用isNaN之前,最好判断一下数据类型。
function myIsNaN(value) { return typeof value === 'number' && isNaN(value); }
判断NaN更可靠的方法是,利用NaN为唯一不等于自身的值的这个特点,进行判断。
function myIsNaN(value) { return value !== value; }
2.7.Number()
Number(obj)
为全局函数,不依托于任何对象,用于将参数对象的值转为数值
例如:
var test1= new Boolean(true); var test2= new Boolean(false); var test3= new Date(); var test4= new String("999"); var test5= new String("999 888"); document.write(Number(test1)); 输出 1 document.write(Number(test2)); 输出 0 document.write(Number(test3)); 输出 1256657776588 document.write(Number(test4)); 输出 999 document.write(Number(test5)); 输出 NaN
1.参数为string
var a="3.14159"; var a2=Number(a);//结果为3.14159
2.参数为数值
var b=3.14159 var b2=Number(b);//结果为3.14159
2.8.parseInt()与parseFloat()
1.parseInt()
parseInt() 函数可解析一个字符串,并返回一个整数。开头和结尾的空格是允许的。如果参数是一个数字,那么该方法将去掉小数部分,并且返回整数部分。
例如:
parseInt(3.14159);//3 参数为数值 parseInt("3.14159");//3 参数为字符串
2.parseFloat()
函数可解析一个字符串,并返回一个浮点数。参数可以为数字,如果参数为小数数字,返回小数数字,如果为整数数字,返回整数数字
例如:
parseFloat(3.14159)//3.14159 parseFloat("3.14159")//3.14159 parseFloat(5)//5 parseFloat("5");//5
2.9.string() — 与toString()同
把不同的对象转换为字符串:
<script> var test1 = new Boolean(1); var test2 = new Boolean(0); var test3 = new Boolean(true); var test4 = new Boolean(false); var test5 = new Date(); var test6 = new String("999 888"); var test7 = 12345; document.write(String(test1)+ "<br>"); document.write(String(test2)+ "<br>"); document.write(String(test3)+ "<br>"); document.write(String(test4)+ "<br>"); document.write(String(test5)+ "<br>"); document.write(String(test6)+ "<br>"); document.write(String(test7)+ "<br>"); </script>
以上实例输出结果:
true
false
true
false
Fri Aug 27 2021 16:31:26 GMT+0800 (中国标准时间)
999 888
12345
2.10.unescape()
功能描述:可对通过 escape() 编码的字符串进行解码。该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),
用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。
温馨提示:ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。
示例:
var str="Need tips? Visit RUNOOB!"; var str_esc=escape(str); document.write(str_esc + "<br>") document.write(unescape(str_esc))