五种输出语句: alert confirm prompt document.write console.log
// 5种简单数据类型 : number string boolean undefined null // 3种复杂数据类型 : array object function
typeof null -->object
//////////////////////////////////////////////////////////////////
转换成数值number类型:
- Number() 构造函数 var num = Number(str);
- parseInt() => 转化为number类型的整数 parseFloat()
-
- 或 -0 (掌握 : +str)
转化为字符串类型:
- 构造函数 String()
- toString()
-
- ''
转化为布尔类型:
- 构造函数 Boolean()
NaN:
- NaN not a number 不是一个数值
- js在运算的时候,运算不出来结果,,它又不报错,, NaN
- NaN 是一个number类型
- NaN它六亲不认 不等于任何值 包括自己
- isNaN() 判断一个值是否不是数值 (用不了) (内容) is: 是否 NaN 不是一个数值 是否不是一个数值 true : 不是一个数值 false : 是一个数值 ////////////////////////////////////////////////////////////////////////
分支语句
- if语句 if if..else if..else...if..else
- 三元运算符
- switch (要求全等) while do...while for do...while 先执行一下循环体,然后再判断循环条件
for (初始值 ; 判断条件 ; 自增) {...}
break :结束当前for循环 跳出大括号 后面的循环不再执行 continue : 结束当前本次循环, 进入下一个循环 跳过直接进入下个循环
数组是一个多元素的集合,,有顺序 有长度 (有序的)
reverse(); // 翻转 unshift // 把数组从前面添加
冒泡:
// 高级版 (了解)
// for(var i = 0; i < arr.length-1;i++) {
// //1. 假设排序好了
// var flag = true;
// for (var j = 0; j < arr.length-1-i; j++) {
// if (arr[j] > arr[j+1]) {
// //2. 打脸
// flag = false;
// var temp = arr[j];
// arr[j] = arr[j+1];
// arr[j+1] = temp;
// }
// }
// //3. 判断
// if (flag) {
// break;
// }
// }
///////////////////////////////////////////////////
函数三要素:函数名 参数 返回值
递归 : 自己 调用自己
函数可以作为参数(回调),返回值(闭包)
////////////////////////////////////////
变量 : 全局变量 : 在全局作用域里声明的 局部变量 : 在局部作用域里声明的 隐式全局变量 : 没有var声明的变量 => 隐式全局也是全局,, 所有的地方都能访问
// new 做了4件事情 (记住) //1. 创建了一个新的空对象 //2. this指向了这个新对象 (给这个新对象添加了属性) //3. 执行构造函数 (实例化属性和方法 给属性和方法赋值) //4. 返回这个新对象
执行构造函数的作用 : (记住) // 实例化属性和方法,,,给属性和方法赋值
查看类型:
- typeof => 只适用 简单数据类型
- instanceof => 查看复杂类型
- constructor 查看具体类型 (构造函数)
操作字符串属性: 1 // .语法 // 结构 : obj.属性 (属性类似一个变量,不是字符串)
2// [] 语法 // 结构 obj['属性名'] ([]里面是属性名的字符串)
Math.PI Math.max Math.min Math.ceil() ceil 天花板 往上取整 Math.floor() floor 地板 往下取整 Math.round() 四舍五入 Math.abs 绝对值 Math.pow 次方 Math.sqrt 开方 Math.random() [0-N] parseInt( Math.random() * N+1)
/////////////////////////////////////////////////////////
数组:
改变原数组:
pop() 数组的后面 删除一个元素 返回的就是删除的那个元素 (删除的时候)
push() 数组后面添加一个/多个元素 返回的是数组的长度 (增加的时候)
unshift() 数组的前面添加一个/多个元素 返回的也是长度 (增加的时候)
shift() 数组的前面 删除一个元素 返回的就删除的那个元素 (删除的时候)
reverse() 翻转
sort() 排序
arr.splice(start,deletedCount,item) arr.splice(start,0,item)
不改变原数组:
join 数组转换 (数组 => 字符串), array.join(分隔符) 返回新数组
concat() 数组1.concat(数组2) 拼接
arr.slice(start,end) arr.slice(start) arr.slice();
slice:slice(start,end),返回选定元素
map,filter,forEach,some,every等不改变原数组
/////////////////////////////////
字符串:
trim() 只能清除两边的空白字符
toUpperCase(); // 全部转化为大写字母
toLowerCase() ;// 全部转化为小写字母
indexOf('c') 查找指定字符串
slice(start,end)
substr (start, count)
substring
str.split(分隔符)
str.replace('a','x');