我正在读书'Singe Page Web Applications'.我遇到了以下示例:
// This is single pass encoder for html entities and handles
// an arbitrary number of characters
encodeHtml = function ( input_arg_str, exclude_amp) {
var input_str = String( input_arg_str), regex, lookup_map;
...
return input_str.replace(regex, function ( match, name ){
return lookup_map[ match ] || '';
});
};
Run Code Online (Sandbox Code Playgroud)
我想知道,使用String()带参数的函数的目的是什么input_arg_str.我知道通过使用String()函数我可以将不同的对象转换为字符串,但我从未遇到过使用这样的功能String().
我很好奇你对此的看法,并且非常感谢你的帮助.
当然,@ Amit Joki的答案是正确的,但有几种方法可以将对象转换为字符串,为什么要使用String(...)?
我猜这里的主要原因是它安全地处理了null,undefined而.toString显然会失败.
String(undefined) // "undefined"
String(null) // "null"
Run Code Online (Sandbox Code Playgroud)
简而言之,将对象转换为字符串比使用它更具防御性.toString.以下是关于MDN的说明:
它可以
String用作"更安全"的toString替代方案,因为虽然它通常仍然调用底层toString,但它也适用于null和undefined.
我相信你用字符串连接得到相同的结果:
var input_str = '' + input_arg_str; // also handles `null` and `undefined`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |