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里数组、对象、函数这三者默认即是引用赋值