精华内容
下载资源
问答
  • js var
    千次阅读
    2022-03-12 14:26:28

    1.作用域不同,var是全局作用域,而let是块作用域。

    2.var可以先使用在定义,而let只能先定义后使用。

    3.let不能被重新定义,但是var可以

    更多相关内容
  • Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的
  • JavaScript中,var用来声明变量,但是这个语法并不严格要求,很多时修改,我们可以直接使用一个变量而不用var声明它。
  • JSvar和let的区别

    千次阅读 多人点赞 2020-09-10 14:57:24
    var和let的区别: 区别: 1.使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象; 2.使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升; 3.let不允许在相同作用域内,重复...

    var和let的区别:

    区别:

    1.使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象;
    2.使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升;
    3.let不允许在相同作用域内,重复声明同一个变量。

    1.基本语法

    {
      let a = 125;
      var b = 521;
    }
    a // Uncaught ReferenceError: a is not defined
    b // 521
    

    总结:使用let声明的变量报错,var声明的返回正确的值,这说明,let声明的变量只在它所在的代码块有效。

    let配合for循环的应用
    for (let i = 0; i < 5; i++) {
      console.log(i); //0 1 2 3 4 
    }
    console.log(i); //ReferenceError: i is not defined
    
    

    上面代码中,计数器i只在for循坏体内有效,再循环体外引用就会报错。

    下面是常见的面试题目:
    for (var i = 0; i <10; i++) {  
        setTimeout(function() {  // 同步注册回调函数到 异步的 宏任务队列。
             console.log(i);        // 执行此代码时,同步代码for循环已经执行完成
          }, 0);
    }
    // 输出结果
    //10   共10个 
    

    如果把 var改成 let声明:

    // i虽然在全局作用域声明,但是在for循环体局部作用域中使用的时候,变量会被固定,不受外界干扰。
    for (let i = 0; i < 10; i++) { 
      setTimeout(function() {
        console.log(i);    //  i 是循环体内局部作用域,不受外界影响。
      }, 0);
    }
    // 输出结果:
    0  1  2  3  4  5  6  7  8 9
    

    另外,for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域

    for (let i = 0; i < 3; i++) {
      let i = 'love';
      console.log(i);
    }
    //输出:
    // love
    // love
    // love
    

    上面代码正确运行,输出了 3 次love。这表明函数内部的变量i与循环变量i不在同一个作用域,有各自单独的作用域。

    2.变量提升问题

    var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined。

    let命令则不同,它所声明的变量一定要在声明后使用,否则报错。

    // var 的情况
    console.log(ar); // 输出undefined
    var ar = 512;
        
    // let 的情况
    console.log(et); // 报错ReferenceError
    let et = 512;
    

    上面代码变量ar用var声明,会发生变量提升,因没有值,所以会输出undefined。变量et用let声明的则不会发生变量提升。
    上面代码中,存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后者绑定这个块级作用域,所以在let声明变量前,对tmp赋值会报错。

    ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。(使用const声明的是常量,在后面出现的代码中不能再修改该常量的值。)

    总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)。

    不允许重复声明

    let不允许在相同作用域内,重复声明同一个变量。

    // 报错
    function func() {
      let a = 10;
      var a = 1;
    }
    
    // 报错
    function func() {
      let a = 10;
      let a = 1;
    }
    

    因此,不能在函数内部重新声明参数。

    function func(arg) {
      let arg; // 报错
    }
    
    function func(arg) {
      {
        let arg; // 不报错
      }
    }
    
    

    参考地址:https://www.jianshu.com/p/84edd5cd93bd

    展开全文
  • javascript中的var_dump方法

    千次阅读 2022-04-27 11:13:15
    javascript中的var_dump方法
    var var_dump = function(obj){
        // 用来保存所有的属性名称和值
        var props = "" ;
        // 开始遍历
        for ( var p in obj ){ // 方法
            if ( typeof ( obj [ p ]) == " function " ){ obj [ p ]() ;
            } else { // p 为属性名称,obj[p]为对应属性的值
            props += p + " = " + obj [ p ] + " \r\n " ;
            } 
        } // 最后显示所有的属性
        alert ( props ) ;
    }

    类似PHP的 var_dump方法,因为调试经常要查看类型才好操作,这样方便挺多

    展开全文
  • javascript var变量长度问题 --笔记

    千次阅读 2015-09-10 14:51:28
    在项目中遇到了一个问题,id值加密长度达到30位...补充:翻查 JavaScript 权威指南,发现数字number的最长长度 是16位。但是google最长长度18位。具体细节下次补充。 方案:采用string字符串接 在此仅作笔记之用。

    在项目中遇到了一个问题,id值加密长度达到30位,在前端获取id时如果使用number类型会出现18位后的数值都是0.

    补充:翻查 JavaScript 权威指南,发现数字number的最长长度 是16位。但是google最长长度18位。具体细节下次补充。

    方案:采用string字符串接
    在此仅作笔记之用。

    展开全文
  • javaScriptvar变量的作用域

    千次阅读 2020-04-07 22:00:08
    <!DOCTYPE html> <... <head> ...meta charset="UTF-8">...javaScriptvar变量的作用域</title> </head> <body> <h1>javaScriptvar变量的作用域</h1...
  • JSvar x;与var x="";的不同点

    千次阅读 2020-05-03 09:54:09
    var x;定义了一个对象,没有确定的值,typeof x; 返回 undefined. var x=""; 定义了一个变量,并且赋值为字符串。typeof x; 返回 string.
  • JavaScript里的var变量

    千次阅读 2018-09-13 11:06:10
    JavaScript里面有var变量,而且好像只有var变量。换句话说var就是个万精油,他没有确定的类型,他的类型取决于赋值给他的变量的类型。例如:   var a = 123; var b = "123"; var c = document....
  • js中加“var”和不加“var”的区别,看完觉得这么多年js白学了 Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的。可以正常运行的代码并不...
  • JavaScript中let和var区别详解

    千次阅读 多人点赞 2020-07-06 15:10:05
    想要了解var(ES5)和let(ES6)区别,首先就要了解ES5下JS的变量提升 一、变量提升(声) 当浏览器开辟出供代码执行的栈内存后,代码并没有自上而下立即执行,而是继续做了一些事情:把当前作用域中所有带var/...
  • JSvar与function

    千次阅读 2019-11-26 13:01:42
    JS中的var是用来定义变量的,使用与否主要是决定变量的作用域 。 1.在HTML文档中添加script标签,使用var定义变量a,输出。 此时输出的变量a值为10。 2.定义一个方法,demo函数,在函数中重新赋值并输出。 输出...
  • 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定义变量和不适用var定义变量的区别 1、不使用var定义一个变量 不使用var定义一个变量时是定义了全局对象window的一个属性,事实上你无论在代码中的任何一个部分(全局或者在某一代码块中)声明...
  • jsvar a={}什么意思

    千次阅读 2017-02-17 10:38:00
    创建一个变量a, 并给a赋值; {}是一个空的对象,是 new Object();...js和其它语言一样,一切对象的基类都是Object,所以,new Object()和简易的{}是同样的空对象,就是默认的对象。本来我以为{}应...
  • js中用var声明变量后并赋值(假设这个值为字符串"variable"),这个值 如果需要在JSP中拿出来显示可以使用此方法: 先在JSP中写一个span标签并设置ID,回到刚刚声明变量的js中在下面补上一句 span_id.innerHTML=...
  • js中的var是什么意思

    千次阅读 2020-03-01 09:32:21
    js中的var是定义变量的意思,使用和不使用var都能定义变量,但是两个变量的作用域不同。 (1)在函数中和函数外分别用var定义一个变量a,函数外的变量a是全局变量,函数内的变量a是局部变量,所以在函数执行后,第...
  • js中的var详解

    万次阅读 多人点赞 2018-03-01 20:03:09
    varjs的一个关键字,它是用来声明变量的。声明一个变量有两种方式:第一种:var num=1。如果在方法中声明,则为局部变量;如果在全局中声明,则为全局变量第二种:num=1。事实上这是对属性进行赋值操作。首先,它...
  • 新手总结,关于JavaScriptvar a = b = c;的拆解

    万次阅读 多人点赞 2019-01-15 19:53:17
    目录一、问题的起源二、解释问题的方式工具原理一:预解析原理二:隐式全局变量原理三:两个变量同时指向一个对象,那么对这个对象的修改是同步三、拆解var a = b = constant的声明与赋值1. 利用预解析拆解var a=b=...
  • js常见的var that = this的用法

    万次阅读 2017-10-13 13:56:51
    this是Javascript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,this代表的是当前对象,只能在函数内部使用var that=this就是将当前的this对象复制一份到that变量中$(‘#conten').click(function(){...
  • javaScriptvar、let、const的区别

    千次阅读 多人点赞 2017-08-24 15:43:29
    javascript中有三种声明变量的方式:var、let、const。 1、var  之前我们在写js代码的时候都知道可以用var定义全局变量和局部变量,也可以省略var,而且在非严格模式下不会报错,但是实际上在严格模式下,两者的...
  • script type = "text/javascript" src = "http://purplestone.github.io/var_dump_js/var_dump.js" charset = "utf-8" > < / script > < script type = "text/javascript" > var_dump ( [ 'ele1' , '...
  • jsvar转成int型

    千次阅读 2012-08-30 15:03:42
    js中变量类型为var,当执行加法操作时是按字符串来拼接的,这是就需要将var转成int行才能正常的进行加法操作,转换方法如下:     var num=parseInt($("#goodsCount").attr("value")); ...
  • js中let,var和const的区别

    万次阅读 多人点赞 2019-01-14 10:32:45
    javascript中有三种声明变量的方式:var、let、const。 var var声明全局变量,换句话理解就是,声明在for循环中的变量,跳出for循环同样可以使用。 var定义的变量可以修改,如果不初始化会输出undefined,不会...
  • jsvar的重复声明

    千次阅读 2017-04-12 09:11:16
    腾讯的一个笔试题,先看一下var a = 100; function fn() { alert(a); //undefined var a = 200; alert(a); //200 } fn(); alert(a); //100 var a; alert(a); //100 var a = 300; alert(a); //300前两个很简单,不...
  • JavaScript笔记 var e=e||window.event

    千次阅读 2020-09-27 16:02:57
    你是如何理解var e=e||window.event的?相信很多人都能给我个回答说是:为了实现多种浏览器兼容。 不错,确实是为了实现浏览器兼容,但是它又是如何实现浏览器兼容的呢? 其实,如果把他写全的话,就好理解多了吧。 ...
  • JS中将var类型数据转换为int

    万次阅读 2018-07-26 17:26:36
    var xqrs = jQuery(inputs).eq(1).val(); var knsrs = jQuery(inputs).eq(2).val(); if(parseInt(xqrs.trim())&lt;parseInt(knsrs.trim())){  //逻辑处理 } 注:从input框取出的值,先用trim()方法处理掉...
  • JS中的块级作用域,var、let、const三者的区别

    万次阅读 多人点赞 2017-10-21 12:22:35
    首先,ECMAScript和JavaScript关系: ECMAScript是一个国际通过的标准化脚本语言。JavaScript由ECMAScript和DOM、BOM三者组成。...1. 块作用域{ }JS中作用域有:全局作用域、函数作用域。没有块作用域的概念。ECM
  • jsvar转int

    万次阅读 2015-08-18 10:26:31
    var str='1250'; var value = parseInt(str); alert(value);

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,624,729
精华内容 1,049,891
关键字:

js var