javaScript知识体系(上)- 变量语句函数对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaScript知识体系(上)- 变量语句函数对象相关的知识,希望对你有一定的参考价值。
1. 变量
1.1 基本输出语句
console.log("在控制台输出的内容"); document.write("在文档中书写内容"); window.alert("其实是window的方法");
1.2 代码注释
//行注释
/**
* 这里可以对函数的功能进行说明
*/
/*多行注释
多行注释
多行注释*/
1.3 标签位置
1.4 标签属性
1 <script src="demo.js" type="text/javascript"></script> 2 <script src="demo.js"></script> 3 <script src="demo.js" async="async"></script> 4 <script src="demo.js" defer="defer"></script>
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 冒泡排序
<script> var arr17 = [56,45,23,78,67,34,96,39,44,23,45,37,85]; var outer = 0; var inner = 0; for(var i = 0; i < arr17.length - 1; i++){ var flag = true; for(var j = 0 ; j < arr17.length - 1 - i; j++){ if(arr17[j] > arr17[j+1]){ var tempValue = arr17[j+1]; arr17[j+1] = arr17[j]; arr17[j] = tempValue; flag = false; } inner++; } outer++; if(flag){ break; } } </script>
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是一个意思 名字不同而已
以上是关于javaScript知识体系(上)- 变量语句函数对象的主要内容,如果未能解决你的问题,请参考以下文章
前端知识体系:JavaScript基础-作用域和闭包-闭包的实现原理和作用以及堆栈溢出和内存泄漏原理和相应解决办法