day07 JSON对象,字符串(严格模式、回调函数[forEach,map,filter]、ASCLL)

前言

笔记包含JSON对象,字符串定义应用,ascll码表应用,以及新增API函数等


目录

前言

一、选择排序

二、JSON对象

1.json定义:

2.json对象属性的使用

3.for...in遍历索引

4.添加自定义属性

5.添加方法的Json对象

三、严格模式

四、indexOf(数组ES5新增方法)

五、回调函数

六、迭代函数

forEach

map:

 filter:

七、字符串的定义和创建

八、ASCll码表

重点记以下:

九、API函数

charAt

charCodeAt:

fromCharCode(asc1,【asc2...】):

indexOf(“abc”)

lastIndexOf(“abc”)

replace:

slice/substring:

split

总结


一、选择排序

var arr=[12,3,4,2,];

//核心:外层N-1;

//内层N-i-1;

思路:i控制指定位置

           k控制目标位置

           k=i;用k来查找目标位置

           最后交换arr【k】和arr【i】

var t,k;

for(var i=0;i<arr.lenght-1;i++){//趟次

        k=i;

        for(var j=i+1;j<arr.length;j++){//次数,j的长度本来是arr.length-i-1,但是由于j是从i+1开始的,所以j的长度也要+i+1,相互抵消就为arr.length。

                if(arr[k]>arr[j]){  // 选择排序不是每次都进行交换,一趟只交换一次;

                               k=j;

                                }

                        }

                        //经过内层循环,k得到的是最小元素对应的下标

                               t=arr[i];

                                arr[i]=arr[k];

                                arr[k]=t;

                }

                console.log(arr)

        }

二、JSON对象

1.json定义:

一种容器:数据格式,将多个繁琐的属性或方法封装成一个整体

定义:由若干个键值对构成的,一组以上的键值对用逗号隔开

var stu={

        key1:valie1,

        key2:value2....

}

 注意事项:key全部用引号引起来

2.json对象属性的使用

方法一:对象名.属性名

console.log(stu.name,stu.age)

方法二:下标法

对象名[“索引”]

console.log(stu["name"],stu["age"])

3.for...in遍历索引

for(var 索引变量名 in 容器(json或数组)){

        //循环体

}

for(var index in stu){

        //for...in中不能用打点的方法

        console.log(stu[index]);

}

4.添加自定义属性

对象名.新的属性名=数值;

5.添加方法的Json对象

var stu={

        "eat":function(){

        console.log("eat");

              }

        "showValue":function(){

                        //如果json对象的函数中需要使用其他属性或者函数

                        //需要加前缀this

                        //this代表调用该函数的对象本身

                        console.log(this.name)

                        this.eat();

                }

        };

stu.showValue();

三、严格模式

“use strict”

严格模式:无法使用未被声明(定义)的变量,但是不限制声明顺序;

四、indexOf(数组ES5新增方法)

indexOf

功能:查找目标元素,找到返回下标,找不到返回-1,

参数:indexOf(目标元素)

返回值:找到返回下标,找不到返回-1

数组去重

var arr=[2,3,4,5,6,7,1,1,2,2,,3,3];

var arr1=[];

for(var i=0;i<arr.length;i++){

        if(arr1.indexOf(arr[i])==-1){

                arr1.push(arr[i]);

        }

}

console.log(arr1);

五、回调函数

回调函数:一个被当做参数的函数

解决问题:将自定义模块传入至第三方模块

function f1(f){//第三方代码,闭源代码

        //f==f2

        //f()==f2()

        f();//这一步是第三方调用的,和自定义设计模块无关

}

var f2=function(){//自定义模块

        console.log("f2");

}

f1(f2);

六、迭代函数

forEach

功能:对数组的所有元素执行某种相同的操作,

参数:forEach(回调函数);

回调函数参数:回调函数(数组元素的值,[下标,元素所在的数组])

返回值:无

var arr=[1,2,3];

function fun(x,index,a){

        a[index]+=10;

}

arr.forEach(fun);

console.log(arr);

map:

功能:和forEach基本一模一样,多了一个返回值

参数:map(回调函数);

回调函数参数:回调函数(数组元素的值,[下标,元素所在的数组])

返回值:用回调函数return的数据,构成一个数组

var arr = [1,2,3];

function fun(x,index,a){

a[index] += 10;

return a[index];

}

var arr1 = arr.map(fun);

console.log(arr1);

 filter:

功能:按条件过滤元素

参数:filter(回调函数);

回调函数参数:回调函数(数组元素的值,[下标,元素所在的数组])

返回值:根据当前回调函数return的布尔值,决定是否返回当前元素本身

var arr = [6,5,7,4,8,3];

function fun(x){

        if(x%2==1){

                return true;

        }else{

                return false;

        }

}

var arr1=arr.filter(fun);

console.log(arr1);

//注:相当于遍历一个数组,对数组内的元素进行函数内的操作,相当于循环函数,每个数组元素调用一次函数至数组结束。

七、字符串的定义和创建

字面量

var str='heihei';//内置基本类型

构造方法

var str1 = new String("heihei");//引用类型

//习惯用字面量方式定义字符串

八、ASCll码表

重点记以下:

97   a

65   A

48   0

32   空格

13   回车

//asc码与字符是完全等价的

九、API函数

charAt

功能:查询索引对应的字符,返回字符

参数:charAt(索引)

返回值:返回索引对应的字符

charCodeAt:

功能:查询索引对应的字符,返回字符所对应的asc码值

参数:charCodeAt(索引)

返回值:返回索引对应的字符的asc码值

输入字符串,统计有多少大写字母,小写字母,数字,空格

getExam()
    var str = "12a45b cA AB+#$%^";
        var bigChar = 0;
        var smallChar = 0;
        var num = 0;
        var space = 0;
        var other = 0;
        
        for(var i=0; i<str.length; i++){
            if(str.charAt(i) >= '0' && str.charAt(i) <= '9'){
                num++;
            }else if(str.charAt(i) >= 'a' && str.charAt(i) <= 'z'){
                smallChar++;
            }else if(str.charAt(i) >= 'A' && str.charAt(i) <= 'Z'){
                bigChar++;
            }else if(str.charAt(i) == " "){
                space++;
            }else{
                other++;
            }
        }
        
        console.log(num,smallChar,bigChar,space,other);

fromCharCode(asc1,【asc2...】):

功能:将asc码值转换为字符,返回被转换的字符

注意:通过String类型名来调用

console.log(String.fromCharCode(97,98));

indexOf(“abc”)

功能:查找字符串第一次出现的位置,返回子串首字母的下标

lastIndexOf(“abc”)

功能:查找字符串最后一次出现的位置,如果没找到返回-1

replace:

功能:用参数2,替换参数1;

参数:replace(参数1,参数2)

返回值:被替换的字符串

slice/substring:

slice(起始位置,结束为止) 左闭右开

substring(起始位置,结束位置);右闭左开

两者区别:slice支持负数:console.log(str.slice(-5,-2));//左开右闭

split

功能:字符串分隔符,将字符串转为数组,

参数:split(“分割字符串”)

返回值:新的数组

toLowerCase、toUpperCase

转小写、转大写





总结

重点背诵新增函数,以及熟悉函数用法。对于回调函数,个人认为将它看成数组遍历,函数不过是一个功能,可以对数组中的每一个元素进行功能性改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值