Oleh kerana tetingkap mempunyai atribut terbina dalam nama, jadi apabila anda mengisytiharkan nama secara global, anda sebenarnya memberikan nilai kepada window.name. Mengenai window.name. Atribut yang serupa termasuk status, dsb. #🎜🎜#
#🎜🎜#Jadi tiada masalah jika anda menggunakan nama1. Malah, jika anda menggunakan nama dalam persekitaran bukan global, atau menggunakan nama dalam persekitaran global nod, tiada koma. #🎜🎜#
Kawan, nama ialah kata kunci, jangan gunakan ini untuk menamakan pembolehubah Anda boleh menaip dan anda akan dapati nama itu rentetan dan nama1 ialah objek
Oleh kerana skop anda adalah global, pembolehubah name yang anda tentukan adalah bersamaan dengan window.name Ia adalah pembolehubah global khas dan sebarang nilai yang diberikan kepadanya akan Melaksanakan Operasi toString Di sini anda memberikan tatasusunan kepada window.name Sebenarnya, jika anda boleh mengeluarkannya, anda akan mendapati ia bukan tatasusunan tetapi rentetan dan ia berlaku sebagai aksara Rentetan boleh dilalui menggunakan gelung, jadi koma adalah outputname 变量相当于 window.name 它是一个特殊的全局变量 任何值赋值给它都会进行 toString 操作 这里你将数组给 window.name 实际你可以输出看一下会发现它并不是数组而是字符串 而恰好字符串是可以用循环遍历的 所以输出了逗号
var name = [0, 1, 2]
console.log(name) // 0,1,2
console.log(typeof name === 'string') // true
解决方法:不使用全局作用域 加一层自执行函数
(function() {
var name = [0, 1, 2]
console.log(name) // [0, 1, 2]
console.log(Object.prototype.toString.call(name)) // [object Array]
})()
或者使用 ES6 的 let
rrreee
Penyelesaian: Jangan gunakan skop global dan tambahkan lapisan fungsi laksana sendiri🎜
rrreee
🎜Atau gunakan kata kunci ES6let untuk mentakrifkan pembolehubah🎜
Saya mencubanya dan nampaknya menjadi masalah dengan nama pembolehubah Selagi ia adalah nama, setiap watak akan dikeluarkan. Sebab khusus tidak diketahui
Oleh kerana nama ialah nama atribut bagi js dan merupakan medan terpelihara Apabila dalam gelung melalui medan ini, ia diproses sebagai String, jadi setiap aksara dalam String akan menjadi output
Sebabnya ialahnama adalah istimewa dan penyemak imbas terpaksa menukarnya kepada rentetan apabila memberikan nilai.
name
特殊,在赋值的时候浏览器强制转成了string。因为window有内置属性
name
,所以你在全局下声明name其实就是在给window.name赋值。关于window.name。类似的属性还有status
等所以你用
Oleh kerana tetingkap mempunyai atribut terbina dalamname1
rrreeeKawan, nama ialah kata kunci, jangan gunakan ini untuk menamakan pembolehubah
Anda boleh menaip dan anda akan dapati nama itu rentetan dan nama1 ialah objek
Oleh kerana skop anda adalah global, pembolehubah
name
yang anda tentukan adalah bersamaan denganwindow.name
Ia adalah pembolehubah global khas dan sebarang nilai yang diberikan kepadanya akan Melaksanakan Operasi
toString
Di sini anda memberikan tatasusunan kepada
window.name
Sebenarnya, jika anda boleh mengeluarkannya, anda akan mendapati ia bukan tatasusunan tetapi rentetandan ia berlaku sebagai aksara Rentetan boleh dilalui menggunakan gelung, jadi koma adalah output
name
变量相当于window.name
它是一个特殊的全局变量 任何值赋值给它都会进行
toString
操作这里你将数组给
window.name
实际你可以输出看一下会发现它并不是数组而是字符串而恰好字符串是可以用循环遍历的 所以输出了逗号
解决方法:不使用全局作用域 加一层自执行函数
或者使用
Penyelesaian: Jangan gunakan skop global dan tambahkan lapisan fungsi laksana sendiri🎜 rrreee 🎜Atau gunakan kata kunciES6
的let
rrreeeES6
let
untuk mentakrifkan pembolehubah🎜Kerana tatasusunan dianggap sebagai rentetan apabila dikeluarkan terus pada konsol
Saya mencubanya dan nampaknya menjadi masalah dengan nama pembolehubah Selagi ia adalah nama, setiap watak akan dikeluarkan. Sebab khusus tidak diketahui
Oleh kerana nama ialah nama atribut bagi js dan merupakan medan terpelihara Apabila dalam gelung melalui medan ini, ia diproses sebagai String, jadi setiap aksara dalam String akan menjadi output
.