例如alert(),Object(),String()等.
我怎么看这些函数背后的代码?我是否需要理解V8等引擎的语言并通读它,或者是否有更简单的解决方案.
我试图看看依靠执行 aconst myNewDate = new Date(dateString)然后使用 an的结果_.isDate(myNewDate)是否足以验证它是“有效日期”,但后来我想:我可以收到什么dateString?
我想到要执行以下操作:
for(i=0;i<110;i++) { console.log(i, new Date(String(i)))}
这是我得到的结果:
0 2000-01-01T06:00:00.000Z
1 2001-01-01T06:00:00.000Z
2 2001-02-01T06:00:00.000Z
3 2001-03-01T06:00:00.000Z
4 2001-04-01T06:00:00.000Z
5 2001-05-01T05:00:00.000Z
6 2001-06-01T05:00:00.000Z
7 2001-07-01T05:00:00.000Z
8 2001-08-01T05:00:00.000Z
9 2001-09-01T05:00:00.000Z
10 2001-10-01T05:00:00.000Z
11 2001-11-01T06:00:00.000Z
12 2001-12-01T06:00:00.000Z
13 Invalid Date
14 Invalid Date
15 Invalid Date
16 Invalid Date
17 Invalid Date
18 Invalid Date
19 Invalid Date
20 Invalid Date
21 Invalid Date
22 Invalid Date
23 Invalid Date
24 …Run Code Online (Sandbox Code Playgroud) 这个问题是参考这个旧问题的,在哪里可以找到javascript-native-functions-source-code
该页面上的答案说,源代码在其中c,c++但我很好奇为什么源(定义)是这些语言的?我的意思是它们是JS函数的定义,例如toString()方法。这是一个JavaScript函数,因此必须使用Javascript语法编写其定义。
toString;在chrome控制台输出中function toString() { [native code] }。
如果它是用户定义的函数,那么您可以看到定义,但看不到它,toString()或者就此而言,其他内置函数毕竟只是函数/方法,必须用JavaScript语法定义,以便引擎正确解释它们。
希望您能理解我要提出的观点。