JAVASCRIPT 变量 技术教程文章
【转】Javascript全局变量var与不var的区别【代码】
相信你对全局变量一定不陌生,在函数作用域里用a=1这种形式定义的变量会是一个全局变量,在全局作用域里,用下面3种形式都可以创建对全局可见的命名:1 <script> 2var a = 1; 3 b = 2; 4 window.c = 3; 5 </script>对于b=2这种方式, 它其实和c是一样的,在执行这个赋值语句的时候,会沿着作用域链寻找名字叫做b的变量,一直找到作用域链的顶端还没有找到,于是给window添加一个属性b然后赋值。var与不var有两个区别:1 var的全局变...
什么是JavaScript变量提升,面试经常问【代码】
JavaScript变量提升 提升(Hoisting)JavaScript将声明移动到顶部的默认行为。JavaScript声明提升,在JavaScript中,变量可以在使用后声明。换一种说法; 变量可以在声明之前使用。示例1给出与示例2相同的结果:例子1:<!DOCTYPE html> <html> <meta charset="utf-8"> <title>js</title> <body><p ></p><script>x = 5; // 给x赋值5elem = document.getElementById("demo"); // 查找一个元素elem.innerHTML = x; // 在元素...
JavaScript 变量类型 保存内存中的位置 和 引用
1. JavaScript变量基本类型值在内存中占据固定大小的空间 因此被保存在栈内存中。 从一个变量向另一个变量复制基本来下的值 会创建这个值得一个副本。 引用类型的值是对象 保存在堆内存中。 包含引用类型值得变量实际上包含的并不是对象本身 而是一个指向该对象的指针。 从一个变量向另一个变量复制引用类型的值 复制的其实是指针 因此两个变量最终都指向同一个对象2. 堆和栈堆栈在数据结构里面的含义就是一组数据的存...
JavaScript 变量屏蔽【代码】
不同作用域中相同名称的变量就会触发变量屏蔽:{let x = {color:"blue"};let y = x;let z = 3;{//重复定义x,所以对全局变量x进行了变量屏蔽let x = 5;console.log(x);//未重定义y,所以变量y.color不变 console.log(y.color);//x已经被重定义,所以x.color不存在,undefined console.log(x.color);//直接是对对象y的修改,//let y = {color:"red"} 前面对y的引用会报错undefinedy.color = "red";console.log(z);}co...
在JS中,一个自定义函数如何调用另一个自定义函数中的变量
function aa1511() { var chengshi="马鞍山"; var shengfen="安徽省"; return shengfen+"@"+chengshi; } function xialachaxun() { var hanshu=aa1511().split("@"); alert(hanshu[0]+‘,‘+hanshu[1]); }原文:http://www.cnblogs.com/smght/p/5266494.html
js基础 1.简单js 语法 关键字 保留字 变量
简单js JavaScript 是一个松散性的语言 对象属性却不想c中的结构体或者c++ 和java的对象, 对象继承机制 使用原型的prototype(原型链),js的分为三部分ECMAScript 、文档DOM对象、浏览器BOM对象 1. 核心(ECMAScript) (语法、类型、语句、关键字、保留字、操作符、对象等)Ie6、7、8 第三版(ECMA-262) 兼容 2.文档对象 dom(ie6-7 基本都dom 一级(基本操作都可以),) 3.浏览器对象模型 BOM (控制浏览器显示无标准...
JavaScript获取后台C#变量以及调用后台方法
http://www.educity.cn/develop/495493.html 有时需要在JavaScript中获取后台变量的值,来判断JavaScript的执行逻辑,或者需要调用C#后台方法获取数据,我们可以使用<%= %>表达式很容易地实现,<%= %>主要是对表达式进行绑定,并计算表达式的值。 1.JavaScript获取后台变量。在后台声明一个全局变量,并将变量的访问属性设置为protected或public,就可以在页面使用了。 在后台C#代码中声明一个protected或public类型的变量...
深入理解Javascript变量作用域
在学习JavaScript的变量作用域之前,我们应当明确几点: a、JavaScript的变量作用域是基于其特有的作用域链的。 b、JavaScript没有块级作用域。 c、函数中声明的变量在整个函数中都有定义。1、JavaScript的作用域链首先看下下面这段代码:1234567891011121314<script type="text/javascript" language="javascript"> var rain = 1;function rainman(){ var man = 2; function inner(){ var innerVar = 4; ...
iframe子页面与父页面元素的访问以及js变量的访问【代码】
1、子页面访问父页面元素 parent.document.getElementById(‘id‘)和document相关的方法都可以这样用 2、父页面访问子页面元素 document.getElementById(‘iframeId‘).contentDocument.getElementsByTagName(‘table‘); contentDocument后可以使用document相关方法 var tet = document.getElementById(‘iframeId‘).contentWindow.document.getElementById("text_inputId"); alert(tet.value); 3、子页面访问父页面js变量(注...
什么是javascript语言,它的历史、作用、基本语法(变量、表达式、作用域、各种关键字和流程控制语句)、数组处理、json、闭包(closure)。
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。 历史:它最初由Netscape的Brendan Eich设计。JavaScript是甲骨文公司的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。Netscape在最初将其脚本语言命名LiveScript,后来Netscape在与Sun合作之后...
JS红宝书学习-第3章 语言基础 --变量_const【代码】
3.3 变量-constconst的行为与let基本相同,唯一一个重要的却别就是用它是必须同时初始化变量,并且司改const声明的变量会导致运行时错误。例:const age = 18; age = 17; // TypeError:给常量赋值// 同时也不允许重复声明 const name = "张三"; const name = "李四";// 作用域也是块 const name = ‘Matt‘; if (true) {const name = ‘Nicholas‘; } console.log(name); // Matt 上述的限制只适用于它指向的变量的引用。换句话说,...
js变量提升【代码】
JavaScript的函数定义有个特点,它会先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部:‘use strict‘;function foo() {var x = ‘Hello, ‘ + y;alert(x);var y = ‘Bob‘; } foo();虽然是strict模式,但语句var x = ‘Hello, ‘ + y;并不报错,原因是变量y在稍后申明了。但是alert显示Hello, undefined,说明变量y的值为undefined。这正是因为JavaScript引擎自动提升了变量y的声明,但不会提升变量y的赋值。对于上述...
JavaScript变量的声明【代码】
定义在函数体外的都属于全局变量,定义在函数体内的属于局部变量。这里的定义是指通过var声明的。JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性。例如:function test(){myname = "huming";alert(myname); }test(); // "huming" alert(myname); //"huming" 两个结果是一样的,说明myname是一个全局变量。那么,隐式全局变量和明确定义的全局变量有没有区别呢。。答案肯定是有的,看下面的...
javascript变量的作用域【代码】【图】
一、基本类型和引用类型基本类型值指的是简单的数据段,而引用类型值指的是那个可能多个值组成的对象。将一个值给变量时,javascript解析器首先要确定是基本类型还是引用类型,基本数据类型可以直接操作保存在变量中的值,而引用数据类型的值是保存在内存中的对象,在操作对象时,实际上操作的是对象的引用而不是实际的对象。二、变量的赋值如果从一个变量上向另一个变量上复制基本数据类型的值,会在变量对象上创建一个新值,然后...
Javascript获取URL地址变量参数值的方法
今天碰到在做一个动态页面的时候,需要用到 URL 的参数值来作判断,从而决定某一块内容在当前页面是否显示。例如exampe.html?parm1=xxx&parm2=xxx&parm3=xxx&…,在这里就需要获取.html后面的所有参数的值。 脑子里的第一个想法是利用“&”符号分割 URL ,从而达到获取参数值的目的。 同时在网上搜了下,实地操作后,记录如下。方法一:在某一块内容的 div 标签后面,加入如下 Javascript 代码: 代码如下 复制代码 <scri...
js 中判断变量是数组还是对象,和判断对象是否为空
判断是对象还是数组 var ids={ id:‘1‘,num:‘2‘ }if(Array.isArray(ids) == false) {console.log(‘不是数组,对象‘) } else if(Array.isArray(ids) == true) {console.log(‘数组’) }判断对象是否为空varc = {};if(JSON.stringify(c) == "{}"){ console.log(‘空‘);}esle{console.log(‘不为空‘)} 结果 空var a = {id:‘1‘,num:‘2‘};if(JSON.stringify(a) == "{}"){console.log(‘空‘);}esle{console.log(‘不为...
Javascript构造函数中变量的作用域问题
构造函数可以与new一起使用,代表创建对象;也能够当做普通的函数调用,因为它也是一个函数。function Person(name) {this.name=name; }Person(12); alert(window.name);//12 可以看到当构造函数被当成普通函数调用的时候,this代表的是全局的window对象。很显然把构造函数当成普通函数调用,不是好的做法, 也没有什么道理要这么做。实际中应该杜绝这样奇怪的用法,以免产生奇怪的问题。 function Person(name,sex) {this.name=...
js中全局变量的一点小知识点【代码】【图】
js中有三种方式定义全局变量:在任何函数外面直接执行var语句,例如:var f="value";直接添加一个属性到全局变量上,在web浏览器中,全局对象名为window。例如:window.f="value";直接使用未经过声明的变量,以这种方式定义的全局变量成为隐式的全局变量。例如:f="value";尽可能少使用全局变量:其中一种方法就是将他们添加到同一个命名空间去:例如:1var My={}; 2 My.name={ 3 "first name":"first", 4 "last-n...
JavaScript常量和变量、表达式 —— 基础语法(3)【代码】
JavaScript基础语法(3) 常量和变量编程实质上就是在对各种各样的数据进行处理。在对数据进行处理的过程中,需要使用一个容器将数据保存起来,这样就可以实现对容器中的数据进行处理。根据容器中保存的数据在程序运行的过程中可不可以改变,容器分成了两种:常量和变量一、常量常量就是一种恒定不变的数值或数据项。JS中的常量又称字面常量。在JS中常量可以分为以下几种:在ES6版本以后,才引入了常量的定义语句::const,常量可分为...
Js作用域链及变量作用域【代码】【图】
要理解变量的作用域范围就得先理解作用域链 用var关键字声明一个变量时,就是为该变量所在的对象添加了一个属性。 作用域链:由于js的变量都是对象的属性,而该对象可能又是其它对象的属性,而所有的对象都是window对象的属性,所以这些对象的关系可以看作是一条链 链头就是变量所处的对象,链尾就是window对象看下面的代码:function t() { var a; function t2() { var b; } } js中函数也是对象,所以变量a所在的对象是t,t又...