- JS的作用
- 页面特效
- 移动端
- 异步交互(AJAX)
- 服务器端开发(node.js)
- 由ECMAScript和dom(操作网页上的api)、bom组成(操作浏览器的部分api)
- 输出到页面内容
- console.log(“输出到控制台”);
- document.write(“输出到页面”);
- prompt(“输入内容”);
- confirm(“弹出带有是否选择按钮的窗口”);
- alert();
- 变量最长255个字符
- 数据类型
- 简单类型
- number、string、boolean、undefined
- 复杂类型
- array、object、date、regexp、function、error
- typeof():测试简单数据类型
- infinity:无穷大
- js小数容易出现小数精度丢失
- NaN(not a number):不和任何数相等(number类型)
- isNaN():判断是不是一个数
- undefined和任何数计算都是nan
- 任何只和null计算都可以看作0来运算(null是object类型)
- 字符串一旦创建就不可修改
- !!变量:可以转换为boolean类型
- 简单类型
- 循环结构
- break:结束循环
- continue:结束本次循环
- 函数的实参数量大于形参,多去的会舍弃
- 形参大于实参,没实参的形参是undefined
- 冒泡排序极限后会出现问题
//冒泡排序 function sortBubble(array){ for (var i = 0; i < array.length-1; i++) { var bool = true; for (var j = 0;j <array.length-1; j++) { if (array[j] > array[j+1]){ var temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; bool = false; } }if (bool){ break;//这样才可以 } } return array; //这样才可以返回正确值 } }
- 匿名函数
- (function(){函数体})();括号直接调用
-
递归和回调 函数
- 递归就是自己调用自己
- 构造函数:new关键字后面调用函数,我们称之为构造函数。首字母大写,构造函数不需要写函数名可 用this代替
-
var stu = new Student("张三"); function Student(name){ this.name = name; this.sayHi = function(){ console.log (this.name+ "说,大家好!"); } }
属性绑定的方法
对象名.属性 = 属性值;
对象名[变量名] = 对象值;
-
- 大括号包含的叫对象,中括号包含的叫数组
- JSON : javascript Object Notation 对象字面量(一个大括号)的一种表现形式
-
var json{ "name":"Tom", "sex":"man", }
-
JSON的值可以是
- 数字(整型或者浮点型)
- 字符串(双引号中)
- 逻辑值(true或false)
- 数组(中括号中)
- 对象(大括号中)
- 遍历json用for...in
-
for(var key, in json){ console.log(key);//打印键名 console.log(json[key]); //打印值 }
-
- 简单类型传值,复杂类型传址
- 简单数据类型保存在栈中,复杂数据类型保存在堆中
- 函数传简单数据类型是值
- 复杂数据类型,函数传递的是地制值(哈希值)
- 简单数据类型保存在栈中,复杂数据类型保存在堆中
- 内置对象:Date、Array、Math、Regexp(正则表达式)、Error、String、Number
- 主要学习内置对象的api(应用程序借口)
- 调用者
- 参数
- 功能
- 返回值
- 主要学习内置对象的api(应用程序借口)
- 栈操作:先进后出
- arr.push():最后插入,返回数组长度
- arr.pop():删除最后一项,返回被删除的项
- 队列操作:先进先出
- arr.unshift();最前面插入,返回长度
- arr.shift();删除第一项,返回被删除的项