JavaScript
JavaScript 语句是 发给浏览器的命令 。这些命令的作用是告诉浏览器要做的事情。
HTML 中的脚本必须位于标签之间。
脚本可被放置在 HTML 页面的
和部分中。
JavaScript 语句 和 JavaScript 变量 都对大小写 敏感。常见的是驼峰法的命名规则,如 lastName (而不是lastname)
分号 用于分隔 JavaScript 语句; 分号来结束语句是 可选的;不用对 return 语句进行断行。
多种数据类型:数字,字符串,数组,对象等等
使用 关键字 var 来定义变量
代码是 JavaScript 语句的序列;浏览器按照 编写顺序 依次执行每条语句。
代码块以 左花括号 开始,以 右花括号 结束。
会 忽略多余的空格。您可以向脚本添加空格,来提高其可读性
在文本字符串中使用 反斜杠 对代码行进行换行。
单行注释以 // 开头。多行注释以 /* 开始,以 */ 结尾。
重新声明 JavaScript 变量,该变量的值 不会丢失
字符串可以是引号中的任意文本,可以使用 单引号 或 双引号
声明新变量时,可以使用关键词 “new” 来声明其类型。JavaScript 变量均为对象。声明一个变量时,就创建了一个新的对象。JavaScript 对象是拥有属性和方法的数据。
JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明;变量提升:函数声明和变量声明总是会被解释器悄悄地被”提升”到方法体的最顶部;JavaScript 初始化不会提升,JavaScript 只有声明的变量会提升,初始化的不会。
JavaScript 严格模式(strict mode)不允许使用未声明的变量。
使用名字来作为索引的数组称为关联数组(或哈希)。JavaScript 不支持使用名字 来索引数组,只允许使用数字索引
在 JavaScript 中, 对象 使用 名字作为索引
在 JavaScript 中, null 用于对象, undefined 用于变量,属性和方法。
JavaScript数据类型
JavaScript 拥有动态类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
对象类型:Object、Date、Array
不包含任何值的数据类型: null、undefined
JavaScript关键字
语句 | 描述 |
---|---|
break | 用于跳出循环。 |
catch | 语句块,在 try 语句块执行出错时执行 catch 语句块。 |
continue | 跳过循环中的一个迭代。 |
do … while | 执行一个语句块,在条件语句为 true 时继续执行该语句块。 |
for | 在条件语句为 true 时,可以将代码块执行指定的次数。 |
for … in | 用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。 |
function | 定义一个函数 |
if … else | 用于基于不同的条件来执行不同的动作。 |
return | 退出函数 |
switch | 用于基于不同的条件来执行不同的动作。 |
throw | 抛出(生成)错误 。 |
try | 实现错误处理,与 catch 一同使用。 |
var | 声明一个变量。 |
while | 当条件语句为 true 时,执行语句块。 |
JavaScript 函数和事件
JavaScript 输出
JavaScript 没有任何打印或者输出的函数。
JavaScript 可以通过不同的方式来输出数据
- 使用 window.alert() 弹出警告框。
- 使用 document.write() 方法将内容写到 HTML文档中。
- 使用 innerHTML 写入到 HTML 元素。
- 使用 console.log() 写入到浏览器的控制台。
JavaScript 正则表达式
JavaScript 变量提升
JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。
JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。
变量提升(hoisting):函数声明和变量声明总是会被解释器悄悄地被”提升”到方法体的最顶部。
JavaScript 初始化不会提升,只有声明的变量会提升,初始化的不会
严格模式
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的Javascript做好铺垫。
严格模式的限制
- “use strict” 指令只允许出现在脚本或函数的开头
- 不允许使用未声明的变量
- 不允许删除变量或对象
- 不允许删除函数
- 不允许变量重名
- 不允许使用八进制
- 不允许使用转义字符
- 不允许对只读属性赋值
- 不允许对一个使用getter方法读取的属性进行赋值
- 不允许删除一个不允许删除的属性
- 变量名不能使用 “eval” 字符串
- 变量名不能使用 “arguments” 字符串
- 由于一些安全原因,在作用域 eval() 创建的变量不能被调用
- 禁止this关键字指向全局对象;使用构造函数时,如果忘了加new,this不再指向全局对象
JavaScript表单
数据验证可以使用不同方法来定义,并通过多种方式来调用
验证方式
- 服务端数据验证是在数据提交到服务器上后再验证。
- 客户端数据验证是在数据发送到服务器前,在浏览器上完成验证。
- 约束验证(constraint validation):约束验证是表单被提交时浏览器用来实现验证的一种算法。