在这篇文章中我发现了这个:
/xyz/.test(function(){xyz;})
Run Code Online (Sandbox Code Playgroud)
我看着这个,我不知道xyz是如何传递给调用者的.所以我在控制台做了一些类似的测试:
/xyz/.test(function(){xya;}) > false
/xyz/.test(function(){xyz;}) > true
/xyz/.test(function(){'xya';}) > false
/xyz/.test(function(){'xyz';}) > true
/xyz/.test(function(){console.log('xya');}) > false
/xyz/.test(function(){console.log('xyz');}) > true
/xyz/.test(function(xya){}) > false
/xyz/.test(function(xyz){}) > true
/fuc/.test(function(){}) > false
/func/.test(function(){}) > true
Run Code Online (Sandbox Code Playgroud)
似乎该.test()函数将参数转换为字符串然后进行测试.那么为什么/xyz/.test(function(){xyz;})用而不是/xyz/.test('xyz')?
它有效地测试了:
(function(){xyz;}).toString()
返回可识别的javascript源代码:
"(function(){xyz;})"
与某些实现可能返回的时髦的东西相反.
它用于.test将函数转换为字符串,然后验证内部标记(xyz)在结果中是否可见.
| 归档时间: |
|
| 查看次数: |
5969 次 |
| 最近记录: |