javascript是一种解释执行的语言
语言分解释执行和编译执行
人用直观的编程语言来写程序-------------计算机语言010011100
举例理解:
英文 中国人张三(不会英文)
1、把英文报刊翻译成中文报刊,然后再看(翻译完后,多了一份中文版)
2、找一个同声翻译,一边看英语,随时翻译出中文
方式1:第一次运行的时候要多等一会儿,因为要等报纸翻译完毕
但是一旦翻译完毕后,以后再运行就能直接运行
方式2:每次运行的时候都要翻译
所以:编译执行,hello.c VC翻译--->hello.exe(二进制可窒息感文件)
解释执行,hello.php/hello.js------->php解释引擎/js引擎------>产生相应的执行效果
javascript与java的关系
语言本身没有关系
网景公司最早开发出来在浏览器运行的脚本语言:livescript
开发之后,正碰上java如日中天,为了抱大腿,改名为javascript
编程共用的东西:变量、控制结构(顺序/分支/循环)、表达式、语句
变量的讨论:
请看黑板,黑板上的内容代表今天的排骨价格,依据这个场景才深入探讨编程中的重要概念---变量
我们可以挖掘出的要素:
黑板 ------内存中该变量的存储地址
当天价格------变量名
40.1 ------变量值
数值 ------变量类型
排骨很贵,房价也很贵
var price = 40.1
var age = 22
当声明上述两个变量之后,发生了什么呢?
js解释引擎先创建2个变量名:age,price,再为此2个变量申请各自的空间并获得地址,然后age、price的地址属性的值就是内存中的地址,也就是说age、price变量名不能体现变量的值,只能体现该变量在内存中的位置。
来看:
var a = 3 在变量档案中加一个a变量,为a变量在内存中申请一段地址,再把a的某一属性指向变量,再在地址中放一个值3
var b = a;建立变量b申请空间,变量指向该空间,并把a变量对应的内存空间中的值读出来,存储到b的相应空间
变量的赋值,b=a为例,不仅可以把a的值读出来,存储到b的相应空间,这样的话a,b是相互独立的,修改时不影响对方,这种情况叫“传递赋值”,
还有另外一种情况是“引用赋值”,引用的是对方的地址,在javascript语言里,不必像Php那样用“&”来声明引用赋值。javascript里数组、对象、函数这三者默认即是引用赋值