今天學習JS變量時學到JS中的變量可以通過賦值更改數據類型,但當用name
作為變量變量名時會出現問題
見示例
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>test</title>
<script>
var name = 18;
console.log(typeof name);
var name = "hello";
console.log(typeof name);
var names = 18;
console.log(typeof names);
var names = "hello";
console.log(typeof names);
</script>
</head>
<body>
</body>
</html>
輸出結果
以name
命名的變量輸出都為string,而以names
命名的輸出正常。
總結
name
雖然不是關鍵字也不是保留字,但它是屬性,不能作為變量名,類似的有top
,location
,self
,但left
,bottom
卻可以,原因是這些變量名是JS的主機變量,永遠不能被重新聲明。參考在這里