1. 变量
1.1 基本输出语句
console.log("在控制台输出的内容"); document.write("在文档中书写内容"); window.alert("其实是window的方法");
1.2 代码注释
//行注释 /** * 这里可以对函数的功能进行说明 */ /*多行注释 多行注释 多行注释*/1.3 标签位置1.4 标签属性
1 2 3 4
1.5 变量命名
- 由字母、数字、下划线、$ 组成且开头不能是数字
- 不能是保留字,(class enum extends super const export import)
- 区分大小写
- 变量的名称要有实际意义
- 规则中所说的字母包括ASCII和Unicode字母字符,如汉字,但不推荐使用
- 变量的命名遵守驼峰命名法,首字母小写,第二个单词的首字母大写 例如:userName
1.6 变量的声明和使用
- JavaScript是弱类型的语言,即声明不同数据类型的变量使用同一个关键字var
1.7 数据类型
- 声明的时候不用考虑类型,但是处理和计算的时候要考虑类型
1.7.1 基本数据类型
- number数值型
- string字符串型
- boolean布尔型
- undefined 未定义
- null空
1.7.2 复杂数据类型
- object对象
- 使用typeof关键字可以查看变量的数据类型
1.7.3 数值类型
- 字面量: var num = 数字;
- 浮点数:
- 计算浮点数时会丢失精度
- 我们通常用整数的计算来表示浮点数的计算
- 以两个浮点数是否相等作为条件判断的依据(判断范围还是可以的)
- NaN
- NaN是数值类型
- NaN不等于自身
1.7.4 字符串类型
- 字面量: var str = “字符串”;
- 字符串的长度: str.length;
- 转义符: \n 换行 \’单引号 \”双引号 \\斜杠
- 字符串的不可变性:
1.7.5 布尔类型
- 所有类型的值都可以转化成布尔值
- 会转化成false的值有:
- 空字符串 数值零NaN undefined null
1.7.6 undefined类型
- 表示声明但未赋值的变量
- 函数没有返回值默认返回undefined
- 函数传递的实参个数少于形参个数时,未传递的参数值为undefined
- 对象没有定义的属性默认为undefined
1.7.7 类型转换(转成字符串类型)
- 转换成字符串
- 将任意类型转化为字符串 String(值)
- 大部分类型都有toString方法 值.toString()
- 小技巧 值+” ”
1.7.8 类型转换(转成数值类型)
- 转换成数值 将任意类型转化为数值 Number(值)
- 将字符串转化为数值 parseInt(“字符串”) parseFloat(“字符串”)
- 小技巧 值-0
1.7.9 类型转换(转成布尔类型)转换布尔
- 将任意类型转化为布尔值 Boolean(值)
- 条件判断中自动转换 if(值)
- 小技巧 +""值
1.8 操作符
1.8.1 一元运算符
- 递增++ 递减--
- a++ 先参与运算 后自加
- ++a 先自加 后参与运算
1.8.2 逻辑运算符
- &&和||都采取短路运算,即第一个能够决定结果就不再看第二个了
- && 的要求比较宽松 要两个都是true才是true 所以看到第一个是false就没有必要继续完后看了
- || 的要求比较严格,要两个都是false才是false,所以看到第一个是true就没有必要继续完后看了
- &&和||不但可以操作布尔类型的值,对其他类型的值也可以进行操作,并返回可以决定表达式结果的那个值。
1.8.3 赋值运算符
1.8.4 运算符优先级
2. 语句
2.1 选择语句if
2.2 三元表达式
表达式1 ? 表达式2 : 表达式3
2.3 选择语句switch
2.4 循环语句for
2.5 break和continue
- break跳出当前循环,执行循环后的语句
- continue跳出当前循环,继续执行循环
2.6 循环语句while
- while语句 先判断后执行
- do while 语句 先执行后判断
3. 数组
3.1 数组声明
- var arr = new Array();//数组的构造函数 创建的是一个空数组
- var arr = new Array("4");//只有传入一个数值的时候 才表示数组元素的个数
- var arr = [5];//因为直接量直接表示的就是数组的内容 所以再传入一个数值表示的也是内容
3.2 数组赋值
- var arr = new Array();//数组的构造函数 创建的是一个空数组
3.3 数组使用
- var arr = new Array();
- arr.lengh; //获取数组元素的个数
- length属性是动态改变的 通过arr.length可以动态追加
3.3 冒泡排序
4. 函数
4.1. 函数的声明
function 函数名 () {//函数体 }
1. 声明式函数 2. 函数表达式4.2. 函数的调用
函数名();
四种调用模式:
- 普通函数调用
- 方法调用模式
- 构造函数都用模式
- 上下文调用模式
4.3. 函数的参数
- 有参数的函数的声明(声明中的参数只是一个占位符,没有实际的值,是形式参数,即形参)
- function 函数名 (参数1,参数2,参数3...) {//函数体 }
- 有参数的函数的调用(调用时传入的参数才是有真正数值的参数,是实际参数,即实参)
- 函数名(参数1,参数2,参数3...);
4.3. 函数的的返回值
- 在函数中通过return关键字将要返回值返回
- return 要返回的值;
4.4. 函数的的高级概念
- @参数详解
- 在JS中实参的个数和形参的个数可以不一致
- @返回值详解
- 函数的返回值是什么,调用这个函数就相当于调用什么,如果没有返回值则为undefined
- 函数在执行完return语句后便会退出函数,后面的代码不会执行
- @两种定义方式
- 函数声明
- function fn1() {//函数体}
- 函数表达式
- var fn2 = function() {//函数体}
4.5. 匿名函数
@参数详解
变量 = function () {//函数体}4.6. @递归调用
程序调用自身的编程技巧称为递归
4.7. @回调函数
- 函数也是一种普通的数据类型
- 因此函数也可以被当作参数传递
- 被当作参数传递的函数叫做回调函数
4.8. 全局变量 局部变量
函数内部声明的变量(局部变量)
5. 对象
- 从宏观的角度讲,对象是对客观事物的抽象,事物的特征可以用属性表示,事物的行为可以用方法表示
- 从微观的角度讲,对象就是一种数据类型,通过对象可以方便地对变量和函数进行管理
5.1. 键值对
- 键值对就是一种对应关系,通过键能够方便地找到值
- 键:值 key:value k:v
5.2. 对象的声明
- 通过构造函数声明(更加通用)var obj= new Object();
- 通过字面量声明(更加简便)var obj= {};
- 对象具有属性和方法
- 属性 用来描述对象的特征 一般是名词 对应变量
- 方法 用来描述对象的行为 一般是动词 对应函数
5.3. 属性
- 属性的定义 对象.属性名 = 值;
- 属性的调用 对象.属性名;
5.4. 方法
- 方法的定义 对象.方法名 = function(){ //函数体 };
- 方法的调用 对象.方法名();
5.5. 对象的其它概念
5.5.1 @对象字面量
- var o = {name : "zs", age : 18, sayHi : function() {console.log(this.name);} };
5.5.2 @对象标记法
- JavaScript Object Notation(JavaScript对象标记法)是仿照JS中对象字面量的格式去书写的一串用来记录对象数据的字符串,可以用于数据传输。将来学习AJAX会详细学习。
5.5.3 访问属性的两种方式
- 点语法(简单)对象.属性名
- 中括号(灵活)对象[“属性名”]
5.5.4 @遍历的两种方式
通过for可以对集合进行有序的遍历
for(var k in json) { 语句 }; k变量代表的是json中的各个属性(key)和 var i = 0中的i是一个意思 名字不同而已