1,Javascript:基于对象和事件驱动,并具有安全性的客户端脚本的脚本语音。由三部分组成 ECMAScript(核心);DOM(文档对象模型);BOM(浏览器对象模型)。
2,基本的数据类型:数值(number) 字符串(string)布尔(boolean)未定义(undefined)空值(null)对象(object)
//数据类型又分为值类型和引用类型
//值类型:是变量和值全部存储在栈里面
//引用类型:值存储在堆里面,栈里面存储定义的变量和存储值的路径
var a = 1
console.log(typeof(a)) //a的原型为number
b = a
b = 2
console.log(a)//a = 1
//上面的例子很好的说明值类型的存储方式
var c = new Object
console.log(typeof(c)) //为对象类型
c.value = 2
b = c
b.value = 3
console.log(c.value) //3
//即对象为引用类型
3,js类型转换分为隐式转换和显式转换,例如parseInt()转化为数字parseFloat()转化为小数。
4,自增,自减: ++a,--a先加减后运算;a++,a-- 先运算后加减;
5,js变量分为局部变量和全局变量,在函数内局部变量大于全局变量
6,变量名提升:
var foo = 1;
function(){
console.log(foo); // undefined
var foo = 2;
console.log(foo); // 2
}
//js中,会全局先“看”一下代码,会把定义的变量提升到函数开头,
//但只会提升定义变量,不会提升定义的变量值
//所以第一次打印为undefined
7,递归函数:用的不多,但在特殊的情况下非常有用。 例如:汉诺塔,斐波那契
递归:函数自己调用自己,上一次循环的结果为下一次循环的开始
步骤:1,先找临界值,即无需计算就能获取的值。
2,找到本次和上一次的关系。
3,假设当前函数已经可以使用了,调用自身计算上一次的的运算结果。
8,数组:是存放一组数的数据类型。
创建方式:1,字面量 可以放数字,字符,对象 。例如:var arr=[1,2,3,4,5]
2,使用构造函数创建数组。例如:var arr = new Array(1,2,3,4,4)
数组的操作函数:push/pop/unshift/shift
slice/splice
reverse/sort
join
var arr = [1,2,3,4]
//push:向数组尾部添加一个元素
arr.push(100);
console.log(arr)//[1,2,3,4,100]
//pop:删除最后一个元素
arr.pop()
console.log(arr)//[1,2,3,4]
//unshift:向头部添加一个元素
//shift:在数组头部删除一个元素
//slice:可以有两个参数 第一个是开始拷贝的位置,第二个是数是长度 返回新的数组
var resArr = arr.slice(2)
console.log(resArr) //[3,4]只有一个参数时。第二个参数默认到结尾
var resArr1 = arr.slice(2,3)
console.log(resArr1)//[3]
//splice:删除和替换
arr.splice(1,1)//第一个是要删除的下标,第二个是长度
console.log(arr)//[1,3,4]
arr.splice(1,1,100)//第三个是要替换的内容
console.log(arr)//[1,100,4]
//reverse 逆序,对原数组改变
//sort排序
function box(a,b){
return a-b; //升序,,,降序:b-a
}
arr.sort(box)
console.log(arr)//[1,4,100]