JS--Day07(json+字符串+严格模式)

文章介绍了JavaScript中对数组的操作,如map函数和has函数的实现;解释了JSON对象的定义和访问方式;讨论了字符串的ASCII码和相关API;提到了ES5的严格模式;并讲解了回调函数的概念及其在定时器中的应用。
摘要由CSDN通过智能技术生成

一.day06作业


  // 1.编写函数map(arr)把数组中的每一位数字都增加30%。
 var arr = [1,2,3,4,5];
 function map(a){
       for(var i=0; i<a.length; i++){
           a[i] *= 1.3;
         }
     }
     map(arr);
    console.log(arr);
    // 2.编写函数has(arr,60)判断数组中是否存在60这个元素,返回布尔类型。
    // var flag = has(arr,9);

    var arr = [1,2,3,4,5];
    function has(a,x){
        for(var i=0; i<a.length; i++){
            if(a[i] == x){
                return true;
            }
        }
        return false;
    }
    console.log(has(arr,15));

二.json

①json对象:描述数据的一种结构类型,将若干繁杂的数据封装成一个对象,统一管理
②a.json对象的定义:由{}括起来,和若干键值对构成,每两个键值对用逗号隔开
var stu = {
        key1:value1,
        key2:value2,
        ...
    }

b.json对象属性的访问

1.点运算符

stu.name = "杨超越";

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

2.下标法:[]中必须得是字符串

console.log(stu["name"]);

var str = "name";

console.log(stu[str]);

三.严格模式

ES5:严格模式下,变量必须定义才能使用(也没啥用,解决不了先定义的问题)

"use strict";//严格模式的字符串

四.字符串的定义形式

    // a.字面量:内置基本类型
    var str = "hello world";
    console.log(str,typeof str);

    // b.构造方法:引用类型
    var str1 = new String("hello world");
    console.log(str1,typeof str1);

五.ascii码表

每个字符都有一个对应的编码,这个表就是ascii码表

0~255对应着255个字符

//97 "a" //65 "A" //48 "0" //13 回车//32 空格

ascii码值无条件和字符等价

 //length:字符串的长度
    // var str = "helloworld";
    // console.log(str.length);
    //charAt(索引):获取索引对应的字符
    // console.log(str.charAt(1));//str[1]虽然可以,但是不建议
    //charCodeAt(索引):获取索引对应字符的asc码
    // console.log(str.charCodeAt(1));

    //统计一个字符串,"abcAA123  +!",
    //其中出现的大写字母,小写字母,数字,空格和其他字符出现的个数
    var bigChar = 0;
    var smallChar = 0;
    var num = 0;
    var space = 0;
    var other = 0;
    var str = "abcAAAAAAA123  +!";

    for(var i=0; i<str.length; i++){
        if(str.charAt(i)>='A' && str.charAt(i) <= 'Z'){
            bigChar++;
        }else if(str.charAt(i)>='a' && str.charAt(i) <= 'z'){
            smallChar++;
        }else if(str.charAt(i)>='0' && str.charAt(i) <= '9'){
            num++;
        }else if(str.charAt(i) == " "){
            space++;
        }else{
            other++;
        }
    }

    console.log(bigChar,smallChar,num,space,other);

六.字符串api

①charAt(索引):返回值索引对应的字符

// 参数:(下标)

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

②charCodeAt(索引):返回值索引对应的字符的asc码值

// 参数:(下标)

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

③String.fromCharCode:返回asc值对应的字符

// 参数:(asc码值1,[asc码值2...])

//返回值:返回asc值对应的字符

//注意该方法通过类名调用

var str = String.fromCharCode('97','98');

console.log(str);

④indexof:查找目标数据,找到返回下标,找不到返回-1 (只能返回第一个

//参数:(目标数据)

//返回值:下标或者-1

⑤lastIndexOf("abc") 查找字符串最后一次出现的位置 如果没找到 返回-1
⑥replace(参数1,参数2):返回用参数2代替参数1后的字符串

// var str = "laowang de ge bi shi laowang";

// str = str.replace("laowang","古力娜扎");

// console.log(str);

⑦ //slice(起始位置,结束位置):返回区间字符串,左闭右开

// var str = "helloworld";

// console.log(str.slice(2,5));

⑧substring(起始位置,结束位置):返回区间字符串,左闭右开

// console.log(str.substring(2,5));

//slice和substring不同:slice参数支持负数,左开右闭

// console.log(str.slice(-5,-2));

⑨split:字符串分割函数,将分割的字符串存放在数组中

//参数:分隔符

//返回值:数组

// var str = "hello world 嘿 嘿 嘿";

// var arr = str.split("o");

// console.log(arr);

⑩大小写转换

console.log("HeiHei".toLowerCase());

console.log("HeiHei".toUpperCase());

七.回调函数

// function f1(){//第三方函数
    //     f2();//问题:无法在第三方函数中调用自己写的函数,因为第三方函数代码是闭源的
    // }

    // function f2(){//自己写的函数
    //     console.log("heihei");
    // }

    // f1();

    //--------------------------
    // 回调函数:一个被当做参数的函数,更多的意义不是被直接调用,而是被别人去间接使用
    // function f1(f){//f == f2
    //     f(); // f() == f2()
    // }

    // var f2 = function(){
    //     console.log("heihei");
    // }

    // f1(f2);

    //-------------------------------
    // setTimeout:定时器,延时多少秒后执行
    // 参数(回调函数,延迟的毫秒数)
    
    var f = function(){
        var oTest = document.getElementById("test");
        oTest.style.backgroundColor = "greenyellow";
    }

    setTimeout(f,3000);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值