一.基本类型和引用类型 ECMAScipt变量可能分为两种数据类型:基本类型和引用类型. 基本类型:指简单的数据段:包括Undefined.Null.Boolean.Number.String:可以操作保存在变量中值(栈内存),所以称为按值访问:不能添加属性. 引用类型:可能由多个值构成的对象:包括Arry.Object等:js不允许直接操作对象的内存(堆内存)空间,所以成为按引用访问:可以动态得添加/改变/删除引用类型值的属性和方法. 1.复制 1 var a=5; 2 var b=a; 3…
在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,描述的是一类对象所具有的属性和方法.而对象是某个特定引用类型的实例. 一.Object类型 可以通过Object构造函数创建一个创建Object实例,但常用方式是使用对象字面量表示法,这种方式可以简化创建包含大量属性的对象的过程,需要注意的是数值属性名会自动转换为字符串. 访问对象属性有两种方法:点表示法和方括号表示法.方括号的优点体现在1.可以通过变量来访问属性.2.如果属性名包括导致语法错误的字符或者保留字以及关键…
  5种基本数据类型 可以直接对值操作 判断引用类型 var result = instanceof Array 执行环境 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中 执行环境的销毁 某个执行环境中的所有代码执行完毕后 该环境被销毁 保存在其中的所有变量了函数定义也会随之销毁 作用域链中的对象 全局执行环境的变更对象始终都是作用域链中的最后一个对象 没有块级作用域 if 和 for 内的变量 外部也可以访问 标记清除 不同浏览器 只不过垃圾时间的长短不同…
1.JavaScript简史 Netscape公司决定开发一种客户端语言用来处理浏览器端简单的表单验证. Netscape公司派布兰登·艾奇(BrendanEich)为计划于1995年2月发布的Netscape Navigator 2开发一种叫LiveScript的脚本语言,该语言将同时在浏览器和服务器中使用(在服务器上的名字叫LiveWire). Netscape Navigator 2正式发布前夕,Netscape为了搭上媒体热炒Java的顺风车,临时把LiveScript改名为JavaSc…
一.引用类型 ECMAScript中,引用类型是一种数据结构称之为对象定义,,引用对象不同于传统面向对象语言所支持的类和接口等基本结构 创建Object 实例的两种方式: new操作符跟Object构造函数 var person = new Object(); person.name ="Nicholas"; person.age=29; 对象字面量表示法 向函数传递大量可选参数的首选方式 var person = { name :"Nicholas", age:2…
JavaScript变量作用域及内存 学习要点: 1.变量及作用域 2.内存问题 JavaScript的变量与其他语言的变量有很大区别.JavaScript变量是松散型的(不强制类型)本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变. 一.变量及作用域 1.基本类型和引用类型的值 ECMAScript变量可能包含两种不同的数据类型的值:基本类型值和引用类型值.基本类型值指的是那些保存在栈…
Ori Article Link OpenGL的东西快忘光了,把角落的第八版红宝书拿出来复习一下 从书中的地址下了个示例代码结果新系统(Win10+VS2015)各种跑不起来,懊恼之后在网上疯狂搜索资料终于跑起来了,记录一下 一.环境搭建指南 书中的地址 http://www.opengl-redbook.com/ 去这里打包下载OpenGL红宝书的示例代码,解压后是这样 虽然没有第一章的代码但第一章的内容好歹算一个完整的例子,网上各种环境搭建教程也都以第一章的代码为例,我们就拿过来直接用一下.…
由于Javascript是松散型的,所以其变量只是在特定时间用于保存特定值的一个名字而已,并不存在某个变量必须保存某种类型的值的规则,变量的值以及其数据类型都可以在脚本的声明周期内改变 一.基本类型与引用类型 1.1 基本类型:保存在栈内存中的简单数据段,值保存在内存中的一个位置 1.2 引用类型:保存在堆内存中的对象,变量保存的仅仅是一个指针,这个指针指向内存中的另一个位置,该位置保存对象 1.2.1 5种基本数据类型:Undefined.Null.Boolean.Number.String在…
基本类型:Undefind Null Boolean Number String 引用类型: 对象 在操作对象时,实际上实在操作对象的引用而不是实际的对象.为此,引用类型的值是按引用访问的. 从一个变量向另一个变量赋值引用类型的值,同样也会将存储在对象中的值赋值一份放到为新变量分配的空间中.不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象 <script> var arr = {name:"jiayu"} doSomeThing(arr); con…
执行环境是js中特别重要的概念,是指变量或者函数可以访问其他数据,定义自己的行为.每个执行环境都有一个与之相对应的变量对象,执行环境中定义的所有变量和函数都保存在这个变量中,我们看不到这个变量,但是后台可以看到.     全局变量的执行环境是最外围的执行环境,在web浏览器中,全局执行环境就是window对象,所以所有的函数和全局变量都可以作为window对象的一个属性.其他执行环境都是在函数和变量执行完毕后销毁内存,变量和函数也随之销毁,而全局变量也是在关闭页面或浏览器的时候销毁.    “…
先理解两个概念:基本类型和引用类型的值 1.基本类型和引用类型的值 (1)定义: 基本类型:指简单的数据段,比如按值访问的js五种基本数据类型undefined.null.boolean.number.srtring 引用类型的值:指保存在内存中的对象,注意一点,js不允许直接操作对象的空间 (2)相似和区别:   相同:定义两种类型的方式都类似:创建一个变量并赋值   不同点1:对于引用数据的值,我们可以添加属性进去,但是基本类型不行,强行添加会报undefined 下面给个例子: var p…
1.无块级作用域 javascript没有块级作用域,这会让其他程序员在理解js代码上很痛苦.在其他很多语言,比如C,大括号括起来的代码块都有自己的作用域 举个例子 if(true) { var name = "saber" }; console.log(name)//saber 上面的代码可以看到,if判断语句中定义的变量所在的环境是全局环境,因此在if判断外面也能访问到该变量 (1)声明变量 function add(num1,num2){ // var sum = num1+nu…
ECMAScript 不介意传进来多少个参数,也不介意传进来的参数类型.     理解参数:      命名的参数只提供便利,不是必需的.     ECMAScript 的变量包含两种不同的数据类型的值.分别是 简单的数据构成的基本数据型值,不能给基本型值添加属性:           var name = "kevin";           name.age = 27;           console.log(name.age);     //undefined 多个值构成的对…
function fn(){ ; alert(a); // 2; } alert(a);//未被定义: alert(b);//全局变量:b=2: ; function fn1(){ ; function fn2(){ alert(a); // a=5; } fn2(); } alert(a); // a=1; fn1(); //这个就是区块域; 给定一个实例:function fn1(){ ; function fn2(){ function fn3(){ alert(a); a = ; } f…
JS的变量可能包含两种不同数据类型的值,基本类型和引用类型; 基本类型是指简单的数据段,引用类型是指可能由多个值构成的对象; JS高级程序设计第三章介绍了变量分为 5种简单数据类型(string/number/undefined/null/boolean)--------基本类型(按值访问): 这五种数据类型是按值访问的,可以操作保存在变量中的实际的值. 1个复杂数据类型(object)--------引用类型(按索引访问): 引用类型的值是保存在内存中的对象;js不予许直接访问内存中的位置,也…
第一章 OpenGL概述 标签(空格分隔): OpenGL 第一章 OpenGL概述 1 什么是OpenGL 2 初识OpenGL程序 3 OpenGL语法 4 OpenGL渲染管线 41 准备向OpenGL传输数据 42 将传输数据到OpenGL 43 顶点着色 44 细分着色 45 几何着色 46 图元装配 47 剪切 48 光栅化 49 片元着色 410 逐片元的操作 5 第一个程序深入分析 51 进入main函数 52 OpenGL的初始化过程 初始化顶点数组对象 分配顶点缓存对象 将数…
1. 简单介绍一下OpenGL可编程渲染管线的流程 顶点着色 --> 细分着色 --> 几何着色 --> 片元着色 --> 计算着色 一般我们主要参与的阶段是顶点着色和片元着色过程 2.shader编程语法 基本和C语言一致,类型转换比C语言更加严格,和C语言区别较大之处就是矩阵,一个矩阵的定义要遵循列主序原则 --也就是说传入的数据要先填充列然后再填充行 mat3 M = (1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0); 结果得到的矩阵…
  JSON是一种轻量级的数据格式.JSON使用JS语法的子集表示对象.数组.字符串.数值.布尔值和null,不支持undefined JSON.stringify() // JSON.stringify(arg1,arg2,arg3) // 第一个参数为要序列化的对象 // 第二个参数为过滤器,可以是数据或者方法,非必填 // 第三个参数为是否在JSON字符串中保留缩进,若是数值表示的是每个级别缩进的空格数,非必填 let book={ title:"九州缥缈录", author:&…
一.介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第四篇,是红宝书第四章内容(主要是变量和作用域问题),当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂更不容易,要熟练js更是难,中间需要不断的积累与重温.因此不是读一两遍就能把这书吃透,需要多读,可谓温故而知新,可以为师矣. 温馨提示:笔记言辞会有主观色彩,知识重点记录.博客内容为基础,适合初学者. 同系列: 第一篇:JavaScript--我发现,原来你是这样的JS(一)(初识) 第二篇…
一.介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第四篇,是红宝书第四章内容(主要是变量和作用域问题),当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂更不容易,要熟练js更是难,中间需要不断的积累与重温.因此不是读一两遍就能把这书吃透,需要多读,可谓温故而知新,可以为师矣. 同系列: 第一篇:JavaScript--我发现,原来你是这样的JS(一)(初识) 第二篇:JavaScript--我发现,原来你是这样的JS(二)(基础概念--躯壳…
写到这个题目<JS变量.作用域,内存>,我就不由自主想起了黄金三嫖客.可能是名字有点像,嗯,一定是这样子的! JS接触下来,应该是要比Java简单不少的,所以,要学好啊.立个flag半年后来看到底学得怎么样. 这会儿来到了本书的第四章.感觉这水平,后天的面试要跪啊,唉想不了那么多了,就当为实习做准备吧. ES变量的两种数据类型 基本类型值:5种,Undefined.Null.Boolean.Number.String.按值访问(因为可以操作保存在变量中的实际值). 引用类型值:保存在内存中的对…
js学习之变量.作用域和内存问题 标签(空格分隔): javascript 变量 1.基本类型和引用类型: 基本类型值:Undefined, Null, Boolean, Number, String; 特点: 在内存中占据着固定的地方和大小 从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本 引用类型值: 是指那些可能由多个值够成的对象 特点: 引用类型的值是对象,保存在内存堆中 包含引用类型值的变量复制引用类型的值,复制的实际是指针,因此两个变量最终都指向同一个对象 参数传递 所…
详解js变量.作用域及内存 来源:伯乐在线 作者:trigkit4       原文出处: trigkit4    基本类型值有:undefined,NUll,Boolean,Number和String,这些类型分别在内存中占有固定的大小空间,他们的值保存在栈空间,我们通过按值来访问的.           JavaScript   1 2 (1)值类型:数值.布尔值.null.undefined. (2)引用类型:对象.数组.函数. 如果赋值的是引用类型的值,则必须在堆内存中为这个值分配空间.…
闭包主要涉及到js的几个其他的特性:作用域链,垃圾(内存)回收机制,函数嵌套,等等 一.作用域链:函数在定义的时候创建的,用于寻找使用到的变量的值的一个索引,而他内部的规则是,把函数自身的本地变量放在最前面,把自身的父级函数中的变量放在其次,把再高一级函数中的变量放在更后面,以此类推直至全局对象为止.当函数中需要查询一个变量的值的时候,js解释器会去作用域链去查找,从最前面的本地变量中先找,如果没有找到对应的变量,则到下一级的链上找,一旦找到了变量,则不再继续.如果找到最后也没找到需要的变量,则…
1 JavaScript的组成和书写位置 Javascript:运行在客户端(浏览器)的脚本语言,JavaScript的解释器被称为JavaScript引擎,为浏览器的一部分,与java没有直接的关系. Java:服务器端的编程语言. API:Application Programming Interface,应用程序编程接口. 1.1 JavaScript的组成 ECMAScript核心:描述了语言的基本语法和数据类型,提供核心语言功能.主要包含语法.类型.语句.关键字.保留字.操作符.对象.…
基本类型和引用类型的值 ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是 Undefined . Null . Boolean . Number 和 String,而引用类型值指那些可能由多个值构成的对象.基本数据类型是按值访问的,引用类型的值是按引用访问的. 动态的属性 对于引用类型的值,我们可以为其添加属性和方法,也可以改变和删除其属性和方法. var person = new Object(); person.name = "Nicholas…
基本类型和引用类型 5种基本类型:undefined.null.boolean.number.string 引用类型:由多个值构成的对象 属性 引用类型可以动态添加属性,而基本类型不可以 var p = new Obj(); p.name = "huyuping"; console.log(p.name)//huyuping var a; a.name = "huyuping"; console.log(a,name)//出错 复制变量值 基本类型 会在变量的对象上…
一.基本类型和引用类型的值 变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值:简单的数据段. 引用类型值:可能由多个值构成的对象. 当将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值. 引用类型的值是保存在内存中的值.JavaScript不允许直接访问内存中的位置,即不能直接操作对象的内存空间. 当复制保存着对象的某个变量时,操作的是对象的引用.在为对象添加属性时,操作的是实际的对象. 1.动态的属性 对于引用类型的值,我们可以为其添加属性和方法,也可以改…
变量.作用域与内存 1 .原始值与引用值 Undefined.Null.Boolean.Number. String和Symbol.保存原始值的变量是按值(by value)访问的 引用值是保存在内存中的对象. 1.1动态属性 引用值可以随时添加.修改和删除其属性和方法 原始值不能有属性,但给原始值添加属性不会报错 1.2传递参数 ECMAScript的所有参数都是传递值的(包括原始值和引用值) 1.3判断类型 typeof 对 对象类型的支持不好 提供了 instanceof 操作符 cons…