JavaScript是用于编写网页行为的轻量级脚本语言
脚本语言的不同之处在于浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译
很多地方可以和C++类似,两者可以对比着来学习
位置
HTML 中的脚本必须位于 <script> 与 </script> 标签之间
脚本可以在放置于标签 <head> 或者 <body>中,还可以使用外部脚本文件,不过要在 <script> 标签的 "src" 属性中设置该 .js 文件,例如:<script src="myScript.js"></script>
输出数据
- 使用 window.alert() 弹出警告框。
- 使用 document.write() 方法将内容写到 HTML 文档中。
- 使用 innerHTML 写入到 HTML 元素。
- 使用 console.log() 写入到浏览器的控制台。
操作符(运算符 ( = + - * / ) 前后需要添加空格)
= + - * /赋值 加 减 乘 除
++自增 --自减
==等于 != 不等于<小于 > 大于
其中多了一个===表示绝对等于,值和类型均相等,而!==表示不绝对等于,值和类型有一个不相等,或两个都不相等
语句
每个语句结束需要用分号;
隔开
对于代码注释用//,多行注释以 /* 开始,以 */ 结尾(与C++相同)
可以在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可,用英文模式下的逗号,想一想代码都是英文的,所以逗号很显然也是英文输入法下的
var a=1,b=2,c=3
- 条件语句:if/else,switch
- 循环语句:for/in循环遍历对象的属性
var person={fname:"John",lname:"Doe",age:25};
for (x in person) // x 为属性名
{
txt=txt + person[x];
}
while,do/while
for...of 是 ES6 新引入的特性,循环功能异常强大
for (var value of myArray) {
console.log(value);
}
语句标识符(和C++类似)
- break 用于跳出循环。
- catch 语句块,在 try 语句块执行出错时执行 catch 语句块。
- continue 跳过循环中的一个迭代。
- do ... while 执行一个语句块,在条件语句为 true 时继续执行该语句块。
- for 在条件语句为 true 时,可以将代码块执行指定的次数。
- for ... in 用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)与python中的遍历相同
- function 定义一个函数
- if ... else 用于基于不同的条件来执行不同的动作。
- return 退出函数
- switch 用于基于不同的条件来执行不同的动作。
- throw 抛出(生成)错误 。
- try 实现错误处理,与 catch 一同使用。
- var 声明一个变量,这里如果直接赋值的话,可以声明任何变量,数字、布尔、字符串等,在赋值的时候系统即自动将它作为变量声明,在声明新变量不赋值的话,可以用
var x= new Number;
这样的格式 - while 当条件语句为 true 时,执行语句块。
使用 4 个空格符号来缩进代码块(不推荐使用 TAB 键来缩进,因为不同编辑器 TAB 键的解析不一样)
数据类型
5 种不同的数据类型:
string,number,boolean,object,function
3 种对象类型:
Object,Date,Array
2 个不包含任何值的数据类型:
null,undefined
可以使用 typeof 操作符来检测变量的数据类型
例如:typeof "John" // 返回 string
而constructor 属性返回所有 JavaScript 变量的构造函数
null 和 undefined 的值相等,但类型不等,这里可以通过下面操作来检验
null === undefined // false
null == undefined // true
JavaScript 拥有动态类型,意味着相同的变量可用作不同的类型
可以从浏览器解析过程来理解,它是一步一执行的,所以x在不同时候可以定义不同的类型
字符串可以是插入到引号中的任何字符。你可以使用单引号或双引号,支持访问字符串中的单个字符,var x=“sjy”,其中x[0]表示第一个字符“s”。字符串长度可以用x.length来访问
对于特殊字符前面加\,与C++基本一致
对于字符串的加减直接用+/-运算符即可
数据转换
转换为字符串:
x.toString(),String(x)
转换为数字:
- Number()
- var y = "5"; // y 是一个字符串
var x = + y; // x 是一个数字
JavaScript 对象
这里在定义创建时即需对对象各属性赋值,构成键值对
var person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
属性的访问
- person.lastName;
- person["lastName"];
对象方法
methodName : function() { code lines }
方法的访问
objectName.methodName()
函数
function functionname(参数var1,var2)
{
执行代码
return返回值;
}
函数内的变量为局部变量,在函数运行完即删除了,函数外的为全局变量,在HTML 中即为Windows对象
函数有个内置对象argument 对象包含了函数调用的参数数组,通过这种方式你可以很方便的找到最大的一个参数的值
var x = function (a, b) {return a * b};
var z = x(4, 3);
以上的函数实际上是一个匿名函数 (函数没有名称)。函数存储在变量中,不需要函数名称,通常通过变量名来调用。
函数声明可以提升
函数里有return语句,即可将函数当做值来使用
正则表达式
var patt = /runoob/i
/runoob/i 是一个正则表达式。
runoob 是一个正则表达式主体 (用于检索)。
i 是一个修饰符 (搜索不区分大小写)。
参数:i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
m 执行多行匹配
正则表达式通常用于两个字符串方法 : 查找search() 和 替换replace()(括号里为正则表达式内容)
test() 方法用于检测一个字符串是否匹配某个模式,括号内为待检测字符,返回值为True或者False
exec() 方法用于检索字符串中的正则表达式的匹配,返回值为匹配的字符串
JavaScript 错误处理
try 语句测试代码块的错误,用于抓取错误
catch 语句处理错误。
throw 语句创建自定义错误消息提示,与try一起用
变量声明
函数及变量的声明都将自动被提升到函数的最顶部,而初始化的变量的吧不会例如var x=5不会提到顶部,只有var x会
在文件首部有"use strict";关于严格模式声明的情况下,不允许使用未声明的变量
数据验证
数据验证方式:
服务端数据验证是在数据提交到服务器上后再验证。
客户端数据验证 在数据发送到服务器前,在浏览器上完成验证。
JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证
JSON
JSON全称 JavaScript Object Notation,是一种轻量级数据交换格式,通常用于服务端向网页传递数据,JSON 格式仅仅是一个文本。
文本可以被任何编程语言读取及作为数据格式传递
语法规则
数据为 键/值 对。
数据由逗号分隔。
大括号保存对象
方括号保存数组
转换方式
JSON.parse() 用于将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify() 用于将 JavaScript 值转换为 JSON 字符串。
网友评论