var

1:在全局作用域下,使用var定义的变量不可以delete,没有var 定义的变量可以delete.也就说明没有var定义的变量(全局)严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过delete删除,而变量不可以

1 b = 5;
2 var a = 4;
3 console.log(a);//4
4 console.log(b);//5
5 delete a;
6 delete b;
7 console.log(a);//4
8 console.log(b);//“ReferenceError:b is not defined”

2:在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量。

3:使用var 定义变量还会提升变量声明,即

1 function hh(){
2     console.log(a);
3     var a = ‘hello world‘;//使用var定义
4 }
5 hh()  ;//undefiend
1 function hh(){
2     console.log(a);
3     a = ‘hello world‘;//不使用var定义:
4 }
5 hh()    // ‘a is not defined‘

这就是使用var定义的变量的声明提前

4:在ES5的‘use strict‘模式下,如果变量没有使用var定义,就会报错.

 
时间: 2024-10-10 16:55:54

var的相关文章

/var/spool/postfix/maildrop 下有大量文件

参考链接:http://www.shangxueba.com/jingyan/121368.html /var/spool/postfix/maildrop  下有大量文件,怎么会有这么多的文件呢 在网上搜索之后明白是mail没有成功的邮件.由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 而我的服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面.如果sendmail或者pos

Mac 下locate命令使用问题WARNING: The locate database (/var/db/locate.database) does not exist.

想在Mac下使用locate时,提醒数据库没创建: WARNING: The locate database (/var/db/locate.database) does not exist. To create the database, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Please be aware that the d

error: bad top line in state file /var/lib/logrotate.status 解决方法

发现日志切割并没有按计划执行,后来手动强制执行时,发现如下报错: [[email protected] logrotate.d]# logrotate -f httpd error: bad top line in state file /var/lib/logrotate.status [[email protected] logrotate.d]# 解决访求: 删除/var/lib/logrotate.status 这个文件即可解决. 解决后,最好再运行一下logrotate -f /etc

js 上传文件后缀名的判断 var flag=false;应用

js 上传文件后缀名的判断  var flag=false;应用 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> &

请问微信小程序let和var以及const有什么区别

在JavaScript中有三种声明变量的方式:var.let.const. var:声明全局变量,换句话理解就是,声明在for循环中的变量,跳出for循环同样可以使用. [JavaScript] 纯文本查看 复制代码 ? 1 2 3 4 5 for(var i=0;i<=1000;i++){ var sum=0; sum+=i; } alert(sum); 声明在for循环内部的sum,跳出for循环一样可以使用,不会报错正常弹出结果 let:声明块级变量,即局部变量. 在上面的例子中,跳出fo

定义类+类实例化+属性+构造函数+匿名类型var+堆与栈+GC回收机制+值类型与引用类型

为了让编程更加清晰,把程序中的功能进行模块化划分,每个模块提供特定的功能,而且每个模块都是孤立的,这种模块化编程提供了非常大的多样性,大大增加了重用代码的机会. 面向对象编程也叫做OOP编程 简单来说面向对象编程就是结构化编程,对程序中的变量结构划分,让编程更清晰. 类的概念: 类实际上是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法. 类定义了类的每个对象(称为实例)可以包含什么数据和功能. 类中的数据和函数称为类的成员:数据成员        函数成员 数据成员: 数据成员

var 在异步中引发的 bug

问题复现 for (var i = 0; i < 10; i++) { $http.get("/uri").then(function(data)){ mydata[i].data = data; } } 报错: unable to get property 'mydata' of null 问题原因 第一步,听说 var 和 let 作用域范围不同,所以特定尝试下 let,看是否能解决这个 bug. for (let i = 0; i < 10; i++) { $http

解决mysql报错Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

启动mysql 报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 1.先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.另外看看是不是权限问题. 2.确定你的mysql.sock是不是在那个位置,mysql -u 你的mysql用户名 -p -S /var/lib/mysql/

var、let、const的区别,已经作用范围。

在es5中一般经常使用的变量有两个级别,一个是用var声明的全局级别的变量,另外一个是函数级别是用var生命在函数内的.本文中将详细讲解我对es6中的const和let的区别. let的使用以及作用范围 let是块级变量,只有在自己声明的内部才会有作用. 'use strict'; { var a = 12; let b = 15; { console.log(a, b)//12 15没有问题的. } } console.log(a,b) //12 defined a是全局变量在哪里输出都没有问

js中const,var,let区别

今天面试,被问了个问题,const, var, let的区别,当时就懵圈了,var 知道,const.let 是什么鬼??? 回来一百度,找到一篇通俗易懂的介绍,先取之收藏,以备忘.主要内容是:js中三种定义变量的方式const, var, let的区别. 摘自:http://www.cnblogs.com/ksl666/p/5944718.html 1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始化 3 c