Js学习笔记一 2018/8/6

(1)判断类型

1)通过 typeof 来获取变量的实际数据类型。

2)判断对象类型

if(对象 instanceof [对象类型]){

    //判断该对象是不是所判断的类型

}

(2)null 的变量类型通过typeof获取得到的是object,而不是null。

(3)遍历的新方法:for in

var arr = [1,2,3,'4',false];

for(var index in arr){

    //得到的index遍历的是索引

    //真正要展示内容要通过:arr[index] 获取

}

(4)回调 函数:

//函数一:输出某个字符串

var print = function(msg){

    document.write(msg);

}

//函数二:计算两数的和并输出结果

var sum = function(a,b,method){

    var c = a+b;

    method(c);//在函数二中调用函数一,即为回调。

}

//回调得到答案

sum(1,2,print);

(5)不定数量传参

方法:不写参数,通过 arguements[index] 获取,index是索引

function sum(){

    for(var index in arguments){//for in 得到有多少个参数

        ...//进行运算

    }

}

因为第五点,所以:js函数没有重载,同名函数后出现则会替代前者。

从函数的本质是变量上看,第二个重名函数等同于给原来的函数(变量)赋新值,所以函数体内容会更改,而不同于其他语言的重载。

(6)通过变量指定的函数,必须先定义再使用。如:

fun1();//正确调用

function fun1(){
    alert("这是函数一");

}

fun2();//错误调用,因为fun2函数未定义

var fun2 = function(){

    alert("这是函数二");

}

fun2();//正确调用

(7)常用类库一 —— String类库

charAt(index) 某个索引下字符,从0开始。

 

substring(1,3) 截取索引1到3的字符

slice(-3)截取后三个

 

indexOf() 找字符位置(从前往后)

lastIndexOf() 找字符位置(从后往前)

 

replace("h",0) 只改变第一个字符h为0

 

trim() 去除前后空格

特别的:

① 全局搜索

通过正则表达式操作:

如:所有的h换为0

replace(/h/g,0);

以此类推:将所有空格去除

replace(/ /g,"") 

② 将字符串拆分为数组

var str="a,b,c,d";

var arr = str.split(",");//以","为分隔符,拆分为数组

(8)常用类库二 —— Math

Math.ceil(1.4)//2,向上取

Math.floor(1.6)//1,向下取

Math.round()//四舍五入

 

Math.abs()//取绝对值

(9)常用类库三 —— Date 日期类的使用

//创建时间日期示例

var date = new Date();

//自己构建时间对象

var date2 = new Date("2012-12-12 12:12:12");

为何要自己构建:

方便提取时间里面的某一部分,如:

date2.getFullYear();//注意了,不是getYear()

date2.getMonth();//从0月开始算,要自己加1

date2.getDate();//获取日期

(10)常用类库四 —— Number类

① 转为字符串

var num = 10;

num.toString([进制数]);//有带参数,则转成该进制下的字符串,如:num.toString(2) = 1010

② 取小数位数

var num2 = 10.267234214;

num2.toFixed(2);//取后两位小数,会四舍五入

③ 字符转数字

Number(Str);//智能转换,自行判断是否保留小数

 

parseInt(Str);//强制转为整数,不保留小数,也即不四舍五入

 

parseFloat(Str);//强制转为浮点数

(11)常用类库五 —— Array类(最重要)

//① 创建对象

var arr = new Array([元素]);//可带参,作为元素

//-------------------------------------------等同于下方

var arr = [元素];

//② 添加元素

arr.push(元素);//往后放

//拼接数组

数组A.concat(数组B);

//③ 截取数组

数组.alice(开始索引,结束索引)

//④ 任意位置插入删除元素

数组.splice(2,0,"abc");

//第一个值是插入索引位置,第二个值是删除该索引后多少个值

//⑤ 排序

数组.sort();//默认以ASCLL码值排,所以一般并不符合我们的需求

真正要排,要使用回调函数:

    ar arr = new Array(21,32,1,65,3,12,8);

    arr.sort(function(num1,num2){

        1) return num1-num2;//是否n1>n2,是则交换,否则不变,所以是降序

        2) return num2-num1;//是否n2>n1,是则交换,否则不变,所以是升序

        3) return 1;//无论怎样都交换,是倒序 == arr.reverse( )

    });

//⑥ 栈和队列

:取出第一个值

var item = 数组.shift( );

:取出最后一个值

var item = 数组.pop( );

//⑦ 迭代

1) 判断数组各元素是否都符合情况,返回布尔值

    var arr = new Array(21,32,4,65,7,12,8);

    var result = arr.every(function(item,index,array){

        return item>5;//判断每个值是否都是大于5,有个false则是false

    });//返回布尔值

2)找出所有符合情况的元素

var arr = arr.filter(function(item,index,array){

    return item>5;//判断是否大于5

}//返回符合条件的所有情况

3)批量操作每个元素

var arr = arr.map(function(item,index,array){

    return 2+item;//给所有元素加上2,实际操作数组

}

最基础遍历:

var arr = arr.forEach(function(){

    ...

});

(12)实战练习:贪吃蛇 中 课外知识。

1)定时器:

setInterval(function(){

    ...

}, 时间毫秒);

2) 全局监听器

document.onkeydown = function(e){

       ...

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值