提示:我们将Javascript放在HTML底部的原因是,浏览器解析HTML似乎按照代码出现的顺序来的。如果Javascript被首先读取,它也影响下面的HTML,但有时出现问题,因为JavaScript会在HTML之前被夹在,如果JavaScript代码出现问题则HTML不会被加载。所以JS代码放在底部是最好的选择.
声明变量
- 使用关键字var,注意区分当x = 12;时被当做全局变量。
- 使用关键字let y =3; 这个语法用来区分语句块代码的局部变量(block scopw local variable).
对变量求值
- 用var,let声明未赋值的变量会被认为是undefined(本身是个object)
- 未赋值的变量在布尔变量中会被认为是false,在数值型中会被认为是NaN.
变量
基本上 JavaScript 里的任何东西都是对象,而且都可以被储存在变量里。将这个记在脑子里。
输入 "35" + "25" 到控制台。为什么结果与你想象的不同?因为引号将数字转换成了字符串,所以最终会连接两个字符串而不是相加数字。
变量声明提升(Variable hoisting)
- 你可以引用稍后声明的变量,而不会引发异常。这一概念称为变量声明提升(hoisting).
- 从一个 window 或 frame 访问另一个 window 或 frame 中声明的变量。例如,设想一个叫 phoneNumber 的变量在文档里被声明,你可以在子框架里用 parent.phoneNumber 来引用它。
常量(Constants)
必须以字母、下划线或美元符号开头并可以包含有字母、数字或下划线。
数据结构和类型
JavaScript可以识别以下不同类型的值
- 六种是原型的数据类型
- Boolean.布尔值,true or false.
- null. 一个表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 null 与 Null、NULL或其他变量完全不同。
- undefined. 变量未定义时的属性。
- Number. 表示数字,例如: 42 或者 3.14159。
- String. 表示字符串,例如:"Howdy"
- Symbol (** 在 ECMAScript 6 中新添加的类型**).。一种数据类型,它的实例是唯一且不可改变的。
- 以及obeject对象
数据类型的转换(Data type conversion)
JavaScript是一种动态类型语言(dynamically typed language)。这意味着你声明变量时可以不必指定数据类型,而数据类型会在脚本执行需要时自动转换。
:显式地将缺失的元素声明为undefined,将大大增加你的代码的清晰度和可维护性。
字符串字面值(String Literals)
要在字符串中插入''字面值,必须转义反斜线。例如,要把文件路径 c: emp 赋值给一个字符串,可以采用如下方式:
var home = "c:\temp";
自定义对象
可以使用 关键字 this调用类中的属性, this是对当前对象的引用。 从外部存取(读/写)其属性的语法是: InstanceName.Property; 这与C++,Java或者许多其他语言中的语法是一样的 (在类中语法 this.Property 常用于set和get属性值)
为定义一个方法, 需要将一个函数赋值给类的 prototype 属性; 这个赋值给函数的名称就是用来给对象在外部调用它使用的。