- 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();删除第一项,返回被删除的项