不理解,如果有高手看到了,请帮忙解答,谢谢啦~

例1:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p> constructor 属性返回变量或对象的构造函数。</p>
<p id="demo"></p>
<script>
var a=[1,2,3,4];
document.getElementById("demo").innerHTML =
"john".constructor + "<br>" +
(3.14).constructor + "<br>" +
false.constructor + "<br>" +
"b".constructor+"<br>"+
a.constructor + "<br>" +
typeof a.constructor + "<br>" +
a.constructor.toString()+"<br>"+
typeof a.constructor.toString()+"<br>"+
a.constructor.toString().indexOf("Array")+"<br>"+
typeof a.constructor.toString().indexOf("Array")+"<br>"+
//a.constructor.toString().indexOf("Array") > -1+"<br>"+
//typeof a.constructor.toString().indexOf("Array") > -1+"<br>"+
{name:'john', age:34}.constructor + "<br>" +
new Date().constructor + "<br>" +
function () {}.constructor;
</script>

</body>
</html>

例1结果:
constructor 属性返回变量或对象的构造函数。

function String() { [native code] }
function Number() { [native code] }
function Boolean() { [native code] }
function String() { [native code] }
function Array() { [native code] }
function
function Array() { [native code] }
string
9
number
function Object() { [native code] }
function Date() { [native code] }
function Function() { [native code] }


例2:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p> constructor 属性返回变量或对象的构造函数。</p>
<p id="demo"></p>
<script>
var a=[1,2,3,4];
document.getElementById("demo").innerHTML =
"john".constructor + "<br>" +
(3.14).constructor + "<br>" +
false.constructor + "<br>" +
"b".constructor+"<br>"+
a.constructor + "<br>" +
typeof a.constructor + "<br>" +
a.constructor.toString()+"<br>"+
typeof a.constructor.toString()+"<br>"+
a.constructor.toString().indexOf("Array")+"<br>"+
typeof a.constructor.toString().indexOf("Array")+"<br>"+
a.constructor.toString().indexOf("Array") > -1+"<br>"+
//typeof a.constructor.toString().indexOf("Array") > -1+"<br>"+
{name:'john', age:34}.constructor + "<br>" +
new Date().constructor + "<br>" +
function () {}.constructor;
</script>

</body>
</html>


例2 结果:
constructor 属性返回变量或对象的构造函数。

true



例3:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p> constructor 属性返回变量或对象的构造函数。</p>
<p id="demo"></p>
<script>
var a=[1,2,3,4];
document.getElementById("demo").innerHTML =
"john".constructor + "<br>" +
(3.14).constructor + "<br>" +
false.constructor + "<br>" +
"b".constructor+"<br>"+
a.constructor + "<br>" +
typeof a.constructor + "<br>" +
a.constructor.toString()+"<br>"+
typeof a.constructor.toString()+"<br>"+
a.constructor.toString().indexOf("Array")+"<br>"+
typeof a.constructor.toString().indexOf("Array")+"<br>"+
a.constructor.toString().indexOf("Array") > -1+"<br>"+
typeof a.constructor.toString().indexOf("Array") > -1+"<br>"+
{name:'john', age:34}.constructor + "<br>" +
new Date().constructor + "<br>" +
function () {}.constructor;
</script>

</body>
</html>


例3结果:
constructor 属性返回变量或对象的构造函数。

false



例4:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p> constructor 属性返回变量或对象的构造函数。</p>
<p id="demo"></p>
<script>
var a=[1,2,3,4];
document.getElementById("demo").innerHTML =
"john".constructor + "<br>" +
(3.14).constructor + "<br>" +
false.constructor + "<br>" +
"b".constructor+"<br>"+
a.constructor + "<br>" +
typeof a.constructor + "<br>" +
a.constructor.toString()+"<br>"+
typeof a.constructor.toString()+"<br>"+
a.constructor.toString().indexOf("Array")+"<br>"+
typeof a.constructor.toString().indexOf("Array")+"<br>"+
//a.constructor.toString().indexOf("Array") > -1+"<br>"+
typeof a.constructor.toString().indexOf("Array") > -1+"<br>"+
{name:'john', age:34}.constructor + "<br>" +
new Date().constructor + "<br>" +
function () {}.constructor;
</script>

</body>
</html>



例4结果:
constructor 属性返回变量或对象的构造函数。

true




例5:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p> constructor 属性返回变量或对象的构造函数。</p>
<p id="demo"></p>
<script>
var a=[1,2,3,4];
document.getElementById("demo").innerHTML =
"john".constructor + "<br>" +
(3.14).constructor + "<br>" +
false.constructor + "<br>" +
"b".constructor+"<br>"+
a.constructor + "<br>" +
typeof a.constructor + "<br>" +
a.constructor.toString()+"<br>"+
typeof a.constructor.toString()+"<br>"+
a.constructor.toString().indexOf("Array")+"<br>"+
typeof a.constructor.toString().indexOf("Array")+"<br>"+
a.constructor.toString().indexOf("Array") > -1+"<br>"+
{name:'john', age:34}.constructor + "<br>" +
new Date().constructor + "<br>" +
function () {}.constructor+"<br>"+
typeof a.constructor.toString().indexOf("Array") > -1;
</script>

</body>
</html>



例5结果:
constructor 属性返回变量或对象的构造函数。

true



例6:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p> constructor 属性返回变量或对象的构造函数。</p>
<p id="demo"></p>
<script>
var a=[1,2,3,4];
document.getElementById("demo").innerHTML =
typeof a.constructor.toString().indexOf("Array") > -1+"<br>"+;
"john".constructor + "<br>" +
(3.14).constructor + "<br>" +
false.constructor + "<br>" +
"b".constructor+"<br>"+
a.constructor + "<br>" +
typeof a.constructor + "<br>" +
a.constructor.toString()+"<br>"+
typeof a.constructor.toString()+"<br>"+
a.constructor.toString().indexOf("Array")+"<br>"+
typeof a.constructor.toString().indexOf("Array")+"<br>"+
a.constructor.toString().indexOf("Array") > -1+"<br>"+
{name:'john', age:34}.constructor + "<br>" +
new Date().constructor + "<br>" +
function () {}.constructor;
</script>

</body>
</html>


例6结果:
constructor 属性返回变量或对象的构造函数。




例7:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p> constructor 属性返回变量或对象的构造函数。</p>
<p id="demo"></p>
<script>
var a=[1,2,3,4];
document.getElementById("demo").innerHTML =
typeof a.constructor.toString().indexOf("Array") > -1+"<br>"+
"john".constructor + "<br>" +
(3.14).constructor + "<br>" +
false.constructor + "<br>" +
"b".constructor+"<br>"+
a.constructor + "<br>" +
typeof a.constructor + "<br>" +
a.constructor.toString()+"<br>"+
typeof a.constructor.toString()+"<br>"+
a.constructor.toString().indexOf("Array")+"<br>"+
typeof a.constructor.toString().indexOf("Array")+"<br>"+
a.constructor.toString().indexOf("Array") > -1+"<br>"+
{name:'john', age:34}.constructor + "<br>" +
new Date().constructor + "<br>" +
function () {}.constructor;
</script>

</body>
</html>


例7结果:
constructor 属性返回变量或对象的构造函数。

false



例8:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p> constructor 属性返回变量或对象的构造函数。</p>
<p id="demo"></p>
<script>
var a=[1,2,3,4];
document.getElementById("demo").innerHTML =
typeof a.constructor.toString().indexOf("Array") > -1+"<br>"+
"john".constructor + "<br>" +
(3.14).constructor + "<br>" +
false.constructor + "<br>" +
"b".constructor+"<br>"+
a.constructor + "<br>" +
typeof a.constructor + "<br>" +
a.constructor.toString()+"<br>"+
typeof a.constructor.toString()+"<br>"+
a.constructor.toString().indexOf("Array")+"<br>"+
typeof a.constructor.toString().indexOf("Array")+"<br>"+
//a.constructor.toString().indexOf("Array") > -1+"<br>"+
{name:'john', age:34}.constructor + "<br>" +
new Date().constructor + "<br>" +
function () {}.constructor;
</script>

</body>
</html>


例8结果:
constructor 属性返回变量或对象的构造函数。

true



问题:(typeof a.constructor.toString().indexOf("Array")) > -1 的摆放位置决定了最后的结果,该句只有放在最后的时候,输出才是true,其它位置都是false,为什么?
原文地址:https://www.cnblogs.com/cyy-13/p/5760260.html