精华内容
下载资源
问答
  • Javascript中var和new有什么区别,Javascript中var和new有什么区别,Javascript中var和new有什么区别
  • 先在JSP中写一个span标签并设置ID,回到刚刚声明变量的js中在下面补上一句 span_id.innerHTML=variable 在页面中你想要显示此变量值得位置加上<span id="span_id"></span>即可 ...
    在js中用var声明变量后并赋值(假设这个值为字符串"variable"),这个值
    

    如果需要在JSP中拿出来显示可以使用此方法:

    先在JSP中写一个span标签并设置ID,回到刚刚声明变量的js中在下面补上一句

    span_id.innerHTML=variable

    在页面中你想要显示此变量值得位置加上<span id="span_id"></span>即可

     

    DEMO:

    <script language="JavaScript">
        function tick() {
            var hours, minutes, seconds;
            var intHours, intMinutes, intSeconds;
            var today;
            today = new Date();
            intHours = today.getHours();
            intMinutes = today.getMinutes();
            intSeconds = today.getSeconds();
    
            if (intHours == 0) {
                hours = "00:";
            } else if (intHours < 10) {
                hours = "0" + intHours+":";
            } else {
                hours = intHours + ":";
            }
    
            if (intMinutes < 10) {
                minutes = "0"+intMinutes+":";
            } else {
                minutes = intMinutes+":";
            }
            if (intSeconds < 10) {
                seconds = "0"+intSeconds+" ";
            } else {
                seconds = intSeconds+" ";
            }
            timeString = hours+minutes+seconds;
            Clock.innerHTML = timeString;
            window.setTimeout("tick();", 1000);
        }
        window.onload = tick;
    </script>
    <div>
        <p align="center">XXXX页面&nbsp;2019年11月9日&nbsp;<span id="DTime"></span>&nbsp;<span id="Clock"></span>
            &nbsp; <strong>信息部-</strong>技术支持 <font color="#FF0000">Ver 0.0.1&nbsp; </font>
        </p>
    </div>
    <script type="text/javascript">
        var strDateTime ="星期"+"日一二三四五六".charAt(new Date().getDay());
        DTime.innerHTML=strDateTime;
    </script>
    展开全文
  • Javascript中var和let间差异

    千次阅读 2017-03-30 10:30:10
    let和const行为词法环境相同,但是var差异很大,var在早起被引入,现代Javascript一般不使用,但旧代码到处都是,本文详细说明,希望不让你迷惑。 示例1 两者相同function sayHi() { var phrase = "Hello"; // ...

    Javascript中var和let间差异

    Javascript申明变量的方式有let、var、const三种不同方式。let和const行为在词法环境中相同,但是var差异很大,var在早起被引入,现代Javascript一般不使用,但旧代码到处都是,本文详细说明,希望不让你迷惑。

    示例1 两者相同

    function sayHi() {
      var phrase = "Hello"; // local variable, "var" instead of "let"
    
      alert(phrase); // Hello
    }
    
    sayHi();
    
    alert(phrase); // Error, phrase is not defined
    

    示例2 两者不同

    下面是不同的,var没有块区域,仅为全局或函数区域,可以越过块区域。

    if (true) {
      var test = true; // use "var" instead of "let"
    }
    
    alert(test); // true, the variable lives after if
    

    如果我们使用 let 在第二行,在alter语句不能访问test百年来。但是var忽略代码块,所以我们其实申明test变量为全局变量了。

    对loop也是同样的,var不能是块区域或局部循环区域:

    for(var i = 0; i < 10; i++) {
      // ...
    }
    
    alert(i); // 10, "i" is visible after loop, it's a global variable
    

    如果代码块在函数里,那么var变成了函数级变量:

    function sayHi() {
      if (true) {
        var phrase = "Hello";
      }
    
      alert(phrase); // works
    }
    
    sayHi();
    alert(phrase); // Error: phrase is not defined
    

    如你所见,var穿过if,for或其他代码块,这时早期Javascript块没有词法环境,var是早起遗留产物。

    var在函数开始时处理

    var申明在函数(或脚本开始处,为全局变量)开始点处理。换言之,var变量在函数开始处被申明,无论其被定义在哪里(假设不是定义在嵌套函数里)。代码示例:
    function sayHi() {
    phrase = “Hello”;

      alert(phrase);
    
      var phrase;
    }
    

    与下面代码效果一样:

    function sayHi() {
      var phrase;
    
      phrase = "Hello";
    
      alert(phrase);
    }
    

    甚至在被忽略的代码块中:

    function sayHi() {
      phrase = "Hello"; // (*)
    
      if (false) {
        var phrase;
      }
    
      alert(phrase);
    }
    

    一般称这种行为叫“提升”,因为所有var被提升至函数顶端。所以,示例中if(false)段代码永远不被执行,但没关系,var被提升至函数顶部,所有示例中(*)行变量已经存在。

    申明被提升,但赋值没有提升
    演示示例如下:
    function sayHi() {
    alert(phrase);

      var phrase = "Hello";
    }
    
    sayHi();
    

    var = phrase = “Hello” 有两个动作
    1、申明变量 var
    2、变量赋值 =

    申明被提升至函数顶部,但赋值总是在原来的地方,所以代码实际效果如下:

    function sayHi() {
      var phrase; // declaration works at the start...
    
      alert(phrase); // undefined
    
      phrase = "Hello"; // ...assignment - when the execution reaches it.
    }
    
    sayHi();
    

    因为所有all申明被提升至函数顶部,所以我们能在函数内其他地方引用,但变量在赋值前是undefined。上面两个示例alert运行都没有错误。因为变量phrase已经存在,但有没有被赋值,所以显示undefined。

    总结

    针对var有两个主要差异:

    1、变量无块范围,最小可见范围是函数级。
    2、变量申明被提升至函数顶部。

    这种差异大多数情况不是好事,我们不能创建块级变量,占用更多内存;提升变量位置给错误提供更多空间。因此,一般新的脚本var通常很少使用。

    展开全文
  • JavaScript中var与let区别

    千次阅读 2018-11-02 10:24:57
    ES6引入let关键字,JS中var与let都是用来声明变量,var没有块级作用域,let有。let因为有了块级作用域,还会带其他的不同。 现在来具体举例说明下区别: 1、关于块级作用域 var a = 0; { var a = 1; } ...

    添加链接描述

    今日头条:https://www.toutiao.com/i6535675554807415299/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1&from=singlemessage&timestamp=1541120454&app=news_article&utm_source=weixin&iid=44628601808&utm_medium=toutiao_android&group_id=6535675554807415299

    JavaScript中var与let区别

    ES6引入let关键字,在JS中var与let都是用来声明变量,var没有块级作用域,let有。let因为有了块级作用域,还会带其他的不同。

    现在来具体举例说明下区别:

    1、关于块级作用域

    var a = 0;

    {

    var a = 1;

    }

    console.log(a); // 1

    如果是let:

    let a = 0;

    {

    let a = 1;

    }

    console.log(a); // 0

    2、重定义同名变量

    var b = 1;

    var b = 2;

    console.log(b); // 2

    var b = 1;

    {

    var b = 2;

    }

    console.log(b); // 2

    如果是let:

    let b = 1;

    let b = 2; // 报错。Identifier ‘b’ has already been declared

    let b = 1;

    {

    let b = 2;

    }

    console.log(b); // 1

    3、变量提升

    var a = 1;

    function foo() {

    console.log(a); // undefined

    var a = 2;

    }

    foo();

    如果是let则抛异常。 a is not defined

    4、全局对象属性

    var a = 1;

    console.log(window.a, a); // 1,1

    如果是let:

    let b = 1;

    console.log(window.b, b); // undefined, 1

    5、for(含for-of、for-in)循环中的不同,let会创建一个新的作用域

    for (var i = 0; i < 3; i++) {

    setTimeout(function() {

    console.log(“setTimeout:”, i); // 3次3

    });

    }

    如果是let:

    for (let i = 0; i < 3; i++) {

    setTimeout(function() {

    console.log(“setTimeout:”, i); // 0,1,2

    });

    }

    这是为什么?每次都会声明新的同名变量吗?那怎么递增和怎么影响到外部呢?

    1.for(expression) 括号里面表达式是一个父级作用域

    2.for循环的每个迭代都会创建一个新的{}作用域块,也就有了块级作用域。新的块是基于前一个执行环境所创建,在初始化时会把变量声明和最新赋值都带过来(thisIterationEnv.InitializeBinding (bn, lastValue))。因此变量会跟着递增,同时如果修改了{}块中的变量也会影响到表达式作用域中的同名变量。但如果在{}块内显式地声明了同名变量,则此时变量修改就不会影响到父级。

    3.var允许重复声明覆盖外层同名的变量,let因为块级作用域所以不会覆盖父级同名的变量

    循环就像以下:

    var i = 1; i++;

    {

    var i = i; // i = 2

    setTimeout(function() {

    console.log(i); // 3

    }, 0);

    }

    i = 3;

    console.log(i); // 3

    如果是let:

    let i = 1; i++;

    {

    let i = 2;

    setTimeout(function() {

    console.log(i); // 2

    }, 0);

    }

    i = 3;

    console.log(i); // 3

    再看一段代码:

    for (let i = 0; i < 3; i++, console.log(“expression作用域:”, i)) {

    setTimeout(function() {

    console.log(“setTime function作用域:”, i);

    });

    let i = 10; // 删除这行试下

    i++;

    console.log(“for block作用域:”, i);

    }

    执行结果:

    JavaScript中var与let区别

    展开全文
  • JavaScript中var、let和const的区别

    万次阅读 多人点赞 2018-07-14 15:04:05
    一、前言ES6(ES2015)出现之前,JavaScript中声明变量就只有通过 var 关键字,函数声明是通过 function 关键字,而ES6之后,变量声明的方式有 var 、 let 、 const 、 function 、 class ,本文主要讨论 var ...

    一、前言

    在ES6(ES2015)出现之前,JavaScript中声明变量就只有通过 var 关键字,函数声明是通过 function 关键字,而在ES6之后,声明的方式有 varletconstfunctionclass ,本文主要讨论 varletconst 之间的区别。

    二、var

    如果使用关键字 var 声明一个变量,那么这个变量就属于当前的函数作用域,如果声明是发生在任何函数外的顶层声明,那么这个变量就属于全局作用域。举例说明:

    var a = 1; //此处声明的变量a为全局变量
    function foo(){
       var a = 2;//此处声明的变量a为函数foo的局部变量
       console.log(a);//2
    }
    foo();
    console.log(a);//1

    如果在声明变量时,省略 var 的话,该变量就会变成全局变量,如全局作用域中存在该变量,就会更新其值。如:

    var a = 1; //此处声明的变量a为全局变量
    function foo(){
       a = 2;//此处的变量a也是全局变量
       console.log(a);//2
    }
    foo();
    console.log(a);//2

    注意:var 声明的变量存在提升(hoisting)。

    三、提升

    提升是指无论 var 出现在一个作用域的哪个位置,这个声明都属于当前的整个作用域,在其中到处都可以访问到。注意只有变量声明才会提升,对变量赋值并不会提升。如下例所示:

    console.log(a);//undefined
    var a = 1;

    该代码段跟下列代码段是一样的逻辑:

    var a;
    console.log(a);//undefined
    a = 1;

    而如果对未声明过的变量进行操作,就会报错

    console.log(b);//假设b未声明过,Uncaught ReferenceError: b is not defined

    四、let

    let 声明的变量,具有如下几个特点:

    1. let 声明的变量具有块作用域的特征。
    2. 在同一个块级作用域,不能重复声明变量。
    3. let 声明的变量不存在变量提升,换一种说法,就是 let 声明存在暂时性死区(TDZ)。

    如下面几个例子所示

    let a = 1;
    console.log(a);//1
    console.log(b);//Uncaught ReferenceError: b is not defined
    let b = 2;
    
    function foo(){
        let a = 1;
        let a = 2;//Uncaught SyntaxError: Identifier 'a' has already been declared
    }

    以下是一个经典的关于 varlet 的一个例子:

    for (var i = 0; i < 10; i++) {
        setTimeout(function(){
            console.log(i);
        },100)
    };

    该代码运行后,会在控制台打印出10个10.若修改为:

    for (let i = 0; i < 10; i++) {
        setTimeout(function(){
            console.log(i);
        },100)
    };

    则该代码运行后,就会在控制台打印出0-9.

    五、const

    const 声明方式,除了具有 let 的上述特点外,其还具备一个特点,即 const 定义的变量,一旦定义后,就不能修改,即 const 声明的为常量。

    例如:

    const a = 1;
    console.log(a);//1
    a = 2;
    console.log(a);//Uncaught TypeError: Assignment to constant variable.

    但是,并不是说 const 声明的变量其内部内容不可变,如:

    const obj = {a:1,b:2};
    console.log(obj.a);//1
    obj.a = 3;
    console.log(obj.a);//3

    所以准确的说,是 const 声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。

    六、总结

    1. var 声明的变量属于函数作用域,letconst 声明的变量属于块级作用域;
    2. var 存在变量提升现象,而 letconst 没有此类现象;
    3. var 变量可以重复声明,而在同一个块级作用域,let 变量不能重新声明,const 变量不能修改。

    展开全文
  • JavaScript中var的重要性

    千次阅读 2016-08-15 16:24:02
    JS申明变量是使用var来进行申明,但是有的时候我们没有使用var也可以。这是为什么呢?我来给大家细细的说来。 var的本质 var的本质就是来申明变量的 var str = 'China';//申明并进行赋值 变量的作用范围先以一...
  • javaScript中var、let、const的区别

    千次阅读 2017-08-24 15:43:29
    在javascript中有三种声明变量的方式:var、let、const。 1、var  之前我们写js代码的时候都知道可以用var定义全局变量和局部变量,也可以省略var,而且非严格模式下不会报错,但是实际上严格模式下,两者的...
  • javascript中var that=this

    万次阅读 2015-11-19 16:25:41
    在javascript中,this代表的是当前对象。 var that=this就是将当前的this对象复制一份到that变量。这样做有什么意义呢? $('#zhetenga').click(function(){ //this是被点击的#zhetenga var that
  • javascript中var的具体用法及含义

    千次阅读 2016-01-07 20:36:56
    js 允许定义变量的时候 不加var 修饰符。 js会当前作用域下寻找上下文是否定义了此变量, 如果没有找到则会为这个变量分配内存。 当且将其视为window的成员。 也就是全局变量。如果加了var 修饰符。 js会...
  • JavaScript var that = this

    千次阅读 2017-08-01 20:50:06
    关于JavaScript中var that =this Author:Bridge Time:2017/8/01在JavaScript中,今天学习H5写一个小游戏的时候,遇到了一个不太懂的点,此写下自己的第二篇CSDN博客。
  • 这几天逛CSDN论坛,发现...What we know is that…(英语作文万能开头) :在JavaScript中有三种声明变量的方式:var、let、const。 目录1.var2. let3. const 1.var (1)var定义的变量之后可以修改,如果不初始...
  • JavaScript中使用var定义变量和不适用var定义变量的区别 1、不使用var定义一个变量 不使用var定义一个变量时是定义了全局对象window的一个属性,事实上你无论代码的任何一个部分(全局或者某一代码块)声明...
  • 目录一、问题的起源二、解释问题的方式工具原理一:预解析原理二:隐式全局变量原理三:两个变量同时指向一个对象,那么对这个对象的修改是同步三、拆解var a = b = constant的声明与赋值1. 利用预解析拆解var a=b=...
  • 请教高手:javascript中var i = {};是什么意思  Javascript 专业回答 helen5106 2009-08-10 18:06 2楼的有点急了,呵呵 var i = {}; 跟 var i = new Object(); 是一个意思,JavaScript ...
  • JavaScript中let和var区别详解

    千次阅读 2020-07-06 15:10:05
    当浏览器开辟出供代码执行的栈内存后,代码并没有自上而下立即执行,而是继续做了一些事情:把当前作用域所有带var/function关键字的进行提前的声明和定义 => 变量提升机制 带var的只是提前声明(declare)var...
  • javaScript与java、c语言虽然有很多相同,但是也存在区别 JavaScript的变量没有块范围 ... var scope="全集变量"; function test(){ //全局变量被局部变量覆盖 document.writeln(scope+"") //定义scope
  • javascript中使用var关键字声明变量和不使用var关键字声明变量,这2者的区别 使用var和不使用var的区别(全局变量/局部变量) /* 说明: 1.使用var声明变量,方法内部是局部变量,方法外部是全局变量 2.没有...
  • JavaScript_var和不用var声明变量的区别

    千次阅读 2015-11-06 14:30:39
    chrome 调试的时候使用...JavaScript 函数(类)内部用var 声明的变量函数外面是不可访问的.如下例    function f1(){   var n=999;  nAdd=function(){n+=1}  function f2(){  alert(n);  }  retu
  • 1.只声明一个的情况 &lt;script&gt; function show(){ var a=b=c=d=5; } show(); alert(a);//弹a时报错(not defined),而b、c、d都能弹出5 &...var a=b=c=d=5;...var a=(b=(c=(d=...
  • javascript中var i = {};是什么意思

    千次阅读 2014-08-31 11:05:25
    javascript中var i = {};是什么意思 var i = {}; 跟 var i = new Object(); 是一个意思,JavaScript 有3方式定义对象,还有一种: function P (x) {  this.x = x; } var i = new P(); ...
  • console.log(a); // undefined var a = 123 // es6 console.log(b); let b = 456; console.log(b);
  • javascript中错误使用var造成undefined

    千次阅读 多人点赞 2014-09-29 18:35:30
    在javascript中根据变量作用的范围不同分为局部变量和全局变量,直接定义的变量是全局变量,全局变量可以被所有的脚本访问;函数定义的变量是局部变量,局部变量只函数内有效。 如果全局变量和局部变量使用...
  • javascript var 重要性

    万次阅读 2012-12-08 10:51:04
    javascriptvar 作用是声明变量。 一般情况下不写都不会出错,但有些情况如果不写,会有不同的结果。 a = 1; alert(a); 上面这个例子FF Chrome执行不会有问题,能输出1。但IE运行呢? 报错:”object...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,601,128
精华内容 640,451
关键字:

在javascript中var

java 订阅