簡體   English   中英

typeof和undefined的結果奇數

[英]Odd results with typeof and undefined

請向我解釋一下,為什么我得到0而不是5

內部HTML文件:

<script>
    var x = 5;
</script>
<div id="dv"></div>

里面的JS文件:

$(function () {
  if(typeof x == 'undefined') {
    var x = 0;
    $("#dv").html(x);
  } else if (x == 5) {
    $("#dv").html(x);
  }
});

我在這里想念什么?

由於Java語言中的變量提升,因此您的腳本的運行方式如下:

$(function () {
  var x;
  if(typeof x == 'undefined') {
    x = 0;
    $("#dv").html(x);
  } else if (x == 5) {
    $("#dv").html(x);
  }
});

因此x永遠不等於undefined因此永遠不會將其設置為0 請注意,變量x在你的功能是不同的變量,該變量x的頁面。 這是因為腳本中的變量已封閉到函數作用域中。


如果我正確理解了您的問題,我會這樣做:

<body data-x="5">
...
<div id="dv"></div>

$(function () {
  var x;
  if(typeof $('body').data('x') !== 'undefined') {

    $("#dv").html($('body').data('x'));
  } else {
    $("#dv").html(0);
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM