学习JS的几个基本函数

1.eval(“字符串”)

语法:

eval(string)

括号里面的参数是必需的;
这个字符串的含义是:要计算的字符串,其中含有要计算的JavaScript表达式或需要执行的语句。
返回数值:通过计算String得到的值

注意:
该方法只接受原始字符串作为参数,如果string参数不是原始字符串,那么该方法将不做任何改变地返回,所以String这个参数不能使用String对象。
如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。

抛出异常的情况:
如果参数中没有合法的表达式和语句,则抛出 SyntaxError 异常。
如果非法调用 eval(),则抛出 EvalError 异常。
如果传递给 eval() 的 Javascript 代码生成了一个异常,eval() 将把该异常传递给调用者。

2.escape(“字符串”)

语法:

escape(string)

参数:必须传入String;
参数的含义:要被转义或编码的字符串

返回值:
已编码的string的副本,其中某些字符(有可能不是全部)被替换成了十六进制的转义序列>

注意:
该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。

可以使用unescape()对escape()编码的字符进行解码。

3.unescape(“字符串”)

参数:
这个string参数是必需的;
含义:要解码或转义的字符串。

返回值:
string被解码后的一个副本。

注意:
工作原理:通过找到形式为%xx和%uxxxx的字符序列(x表示十六进制的数字),用Unicode字符 \u00xx 和 \uxxxx 替换这样的字符系列进行解码。

4.parseFloat(string)

这个函数可以解析一个字符串,并返回一个浮点数。
该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。

注意:

  1. 字符串中只返回第一个数字。

  2. 开头和结尾的空格是允许的。

  3. 如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。

5.parseInt(numberstring,radix)

定义和用法

parseInt() 函数可解析一个字符串,并返回一个整数。

当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

当忽略参数 radix , JavaScript 默认数字的基数如下:

1. 如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
2. 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
3. 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

语法:

string:: 必需。要被解析的字符串。
radix :可选;表示需要解析的数字的基数;这个数值的范围:2 - 36之间。

注意:

  1. 只有字符串中的第一个数字会被返回。
  2. 开头和结尾的空格是允许的。
  3. 如果字符串的第一个字符不能被转换为数字,那么 parseInt() 会返回 NaN。
  4. 在字符串以"0"为开始时旧的浏览器默认使用八进制基数。ECMAScript 5,默认的是十进制的基数。

isNaN()函数

定义和用法:
isNaN(value) 函数用于检查其参数是否是非数字值。
如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。

理解与注意点:
需要注意的是,isNaN() 函数其实并不能像它的描述中所写的那样,数字值返回 false,其他返回 true。

实际上,它是判断一个值能否被 Number() 合法地转化成数字。

这中间有什么区别呢,主要提现在一些特别的情况如下:

1、数字形式的字符串。例如 “123”、"-3.14",虽然是字符串型,但被 isNaN() 判为数,返回 false。(“12,345,678”,“1.2.3” 这些返回 true)
2、空值。null、空字符串""、空数组[],都可被Number()合法的转为0,于是被isNaN认为是数,返回false。(undefined、空对象{}、空函数等无法转数字,返回true)
3、布尔值。Number(true)=1,Number(false)=0,所以isNaN对布尔值也返回false。
4、长度为 1 的数组。结果取决于其中元素,即:isNaN([a])=isNaN(a),可递归。例如isNaN([[“1.5”]])=false。
5、数字特殊形式。例如"0xabc"、“2.5e+7”,这样的十六进制和科学计数法,即使是字符串也能转数字,所以也返回false。
可能还有其他情况,一时想不到了。

总之,很多时候不能用单纯用 isNaN() 取判断。

比如一个空值或者数组,甚至是包含字母和符号的字符串,它都有可能告诉你这是数值。还是要结合具体情况使用。

发布了136 篇原创文章 · 获赞 0 · 访问量 2970

猜你喜欢

转载自blog.csdn.net/weixin_42596275/article/details/103238115