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):约束验证是表单被提交时浏览器用来实现验证的一种算法。