JavaScript提升

(一)JS操作符

(1)算术运算符

算术运算符(基础数字运算)( + - * / %)
当不是数字之间的运算的时候,+号两边一旦有字符串(引号引起的部分),那么+号就不再是数学运算了,而是拼接,最终结果是字符串。
-/*% 尽量将字符串转换成数字(隐式类型转换)
NaN: Not a Number number

<body>
<script>
    // 算术运算符(基础数字运算) + - * / %
    a = 10
    b = '2'
    c = 'zs'
    console.log(a + 1);  //输出值为11
    console.log(a + b);  //隐式转换,+为字符串拼接,输出值为102
    console.log(a + c);  //隐式转换,+为字符串拼接,输出值为10zs
    console.log(a - b);  //隐式转换,输出为8。数值和数字类型的字符串相减,字符串会默认转为数值做算数运算
    console.log(a - c);  // NaN -- Not a Number
    console.log(a * c);  // NaN -- Not a Number

    /*
    当不是数字之间的算数运算时,+号两边一旦有字符串
    不再是数学运算,而是字符串拼接,最终就是字符串
    非数字的字符串和数值之间做减法运算结果就是一个NaN,不是一个数字
    乘除余皆是如此
    */
</script>
</body>

在这里插入图片描述

(2)赋值运算符

+= ; -= ; *= ; /=; =; 这些是基本的赋值运算符,除此之外还有++; --,这两个都存在隐式类型转换,会全部转成数字。

<body>
<script>
    // += -= *= /= = 这些是基本的赋值运算符
    // 特殊赋值运算符++ --
    a = 10
    b = '2'
    c = 'zs'
    // console.log(a+=1)        //输出为11
    // console.log(a-=1)        //输出为9
    // console.log(a*=2)        //输出为20
    //
    // console.log(a++)  //先输出a,显示为10,在10的基础上加1不显示
    // console.log(a)    //在上面的基础上在输出a则为11
    // console.log(++a)  //先加1在输出a为11
    //
    // console.log(a--)  //先输出a,显示为10,在10的基础上减1不显示
    // console.log(a)    //在上面的基础上在输出a则为9
    // console.log(--a)  //先减1在输出a为9

    /*
    赋值运算符++,写在数值的后面,二次输出的时候,值才会改变,
    ++写在值前面,值立马就加一,
    --等同以上。
    * */
</script>
</body>

(3)逻辑运算符

JS中的逻辑运算用:&&(与 and)、||(或 or)、!(非 取反 not)来表示。 && 和 || 不会进行类型转换,!则会进行类型转换,将后面的数据先转换为布尔型在取反。

<body>
<script>
    // 逻辑运算用:&&(与 and)、||(或 or)、!(非-取反 not) 来表示
    a = 10
    b = '2'
    c = 'zs'

    // &&(与 and)
    console.log(a>2 && a>3)  //布尔值 true和false
    console.log(a<2 && a<3)  //布尔值 true和false
    console.log(a>2 && a<3)  //布尔值 true和false

    console.log(a>2 || a<3)  //布尔值 true和false
    console.log(! a>2)       //布尔值 true和false

    //多重逻辑运算符使用  ! > && > ||
    console.log(! a>2 && a>3 || a>9)  //true

</script>
</body>

在这里插入图片描述

(4)比较运算符

<,>,!=,>=,<=,==(恒等于),===(全等于)
如果等号两边是boolean、string、number三者中任意两者进行比较时,优先转换为数字进行比较。
如果等号两边出现了null或undefined,null和undefined除了和自己相等,就彼此相等
NaN==NaN 返回false,NaN和所有值包括自己都不相等。

<body>
<script>
    a = 10
    b = '2'
    c = 'zs'

    // > < != >= <= == ===(全等于) 比较运算符
    console.log(a > 2)         //true
    console.log(a == 10)       //true
    console.log(a == '10')     //true 只比较值,不比较类型
    console.log(a === 10)      //true 即比较值,也比较类型
    // null或undefined的特殊比较
    console.log(null == undefined) // true 值相同
    console.log(null === undefined) // false 类型不相同
    console.log(NaN==NaN) // false


</script>
</body>

在这里插入图片描述

(二)JS流程控制

JS中流程控制是if判断和switch选择。

(1)if判断

<body>
<input type="text" placeholder="今天天气怎么样?" id="inp">
<button id="btn">提交</button>
<script>
        // 天气分析案例:
    inp = document.getElementById('inp')
    btn = document.getElementById('btn')
    btn.onclick = function () {
        weather = inp.value
        if(weather==='晴天'){
            console.log('去逛街!')
        }
        else if(weather==='下雨'){
            console.log('在家写作业')
        }
        else{
            console.log('在家追剧')
        }
    }

</script>

</body>

在这里插入图片描述
在这里插入图片描述

(2)switch选择

<body>
<input type="text" placeholder="今天天气怎么样?" id="inp">
<button id="btn">提交</button>
<script>
    inp = document.getElementById('inp')
    btn = document.getElementById('btn')
    btn.onclick = function () {
        weather = inp.value
        switch (weather) {                     //switch(要判断的变量)
            case '晴天':                       //case全等于的意思   case+值:
                console.log('去逛街!')
                break;  // 流程控制语句的结束    一定要加break,否则会一直向下执行

            case '下雨':
                console.log('在家写作业')
                break;

            default:
                console.log('在家追剧')
                break

        }
    }
</script>

</body>

在这里插入图片描述

(3)三元表达式(类似于Python的三目运算)

作用:简化简单的if语句
形式:
1.语法:
2.变量 = 条件语句?表达式1:表达式2

<body>
<script>
    num = 1
    // if(num>5){
    //     console.log('是的')
    // }
    // else{
    //     console.log('不是')
    // }                                 //正常if循环

    res = num>5?'是的':'不是'              //简化后
    console.log(res)
</script>

</body>

在这里插入图片描述

(三)JS循环

循环三要素:循环的初始值、循环的结束条件、循环体。

(1)while循环

形式:
1.语法:
2. while (循环的结束条件){循环体}
例:

<body>
<script>
    a = 1
    while (a<=5){
        console.log(a)
        a++ //累加
    }
</script>

</body>

在这里插入图片描述

(2)do while循环

先做事情再做判断
形式:
1.语法:
2.do{循环体}while(结束的条件)
例:

<body>
<script>
    a = 1
    do {
        console.log(a)
        a++
    }while (a<=5)
</script>

</body>

在这里插入图片描述

(3)for循环

形式:
1.语法:
2.for(初始变量;循环的结束条件;初始变量的累加) {循环体}
例:

<body>
<script>
    for (a = 1; a <= 10; a++) {
        // if(a===5){               /可以添加if循环
            // break  //终止循环
            //continue  //跳过当前循环
        // }

        console.log(a)
    }
</script>

</body>

在这里插入图片描述

(4)for in 循环

形式:

  1. for(虚构变量 in 迭代对象){循环体}
    例:
<body>
<script>
    a = 'abc'
    for(i in a){
        console.log(a[i])  // 迭代对象的索引
    }
</script>

</body>

在这里插入图片描述

(四)JS字符串方法和数组方法

(1)字符串方法

<body>
<script>

    st = 'this is string'
    dic = {'a': 1, 'b': 2}

    // 长度
    // console.log(st.length)

    //取值
    // console.log(st[3]) //索引切片取单值
    // console.log(st.slice(1,6))  //取双值 左闭右开
    // console.log(st.slice(1))  //向后取所有
    // console.log(st.substring(0,6))  //字符截断 左闭右开
    // console.log(st.substring(0))  //向后取全部
    // console.log(st.substr(3,3))  //字符截取(从3开始向后取3个)

    // 对象方法
    // console.log(Object.keys(dic))  //下标
    // console.log(Object.values(dic))  //值

    // 切割
    // console.log(st.split(''))  //按空字符切割
    // console.log(st.split(' ',2))  //按空格切割,切割保留n个元素

    //替换
    // console.log(st.replace('is','IS'))  //替换单个
    // console.log(st.replaceAll('is','IS'))  //替换所有
    // console.log(st.replace('is',''))  //替换用作删除

    // 修改
    // console.log(st.toUpperCase())  //转大写
    // console.log(st.toLowerCase())  //转小写

    //查找
    // console.log(st.indexOf('i'))
    // console.log(st.indexOf('i',3)) // 指定位置找索引,从3向后

    //转类型
    // nu = 123
    // nu2 = '1.56'
    // res = nu.toString()  //转字符串
    // console.log(typeof res)  //string
    // console.log(parseInt(nu2))  //1  转整数
    // console.log(parseFloat(nu2))  //1.56 转小数


</script>
</body>

(2)数组方法

<body>
<script>

    //数组方法
    // arr = [1, 2, 3, 4, 5]

    //长度
    // console.log(arr.length)

    //取值
    // console.log(arr[1])   //通过索引取值
    // console.log(arr.slice(1,4))   // 通过切片取值
    // console.log(arr.slice(1))        //向后取所有

    //增
    // arr.push('python', 'js')  // 默认向后添加
    // arr.unshift('aa','bb')    //向前添加
    // console.log(arr)

    //删除
    // arr.pop()  //单个删除一个,默认从后开始删
    // arr.shift()  // 单个删除一个,默认从前开始删
    // arr.splice(2,2)  // 从索引位置,删除个数
    // arr.splice(2,0,'aa','bb')  // 索引位置,删除个数,追加的元素

    //修改
    // arr[0] = 111
    // arr[6] = 111 //有责改,无责增

    //查
    // console.log(arr.indexOf(2)) // 索引

    // 排序
    arr = [3,1,2,6]
    // console.log(arr.sort())  //升序
    // console.log(arr.reverse())  //降序

    //数组拼接
    // console.log(arr.join("-")) //join当中就是拼接的分隔符


</script>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值