记录一下,我一下子没有反应过来的问题

96 阅读1分钟

++运算符

var num = 0;
var t = num++ + num++;

你觉得 t 最后的值是多少? 首先我们需要知道的是 后置递增++运算符+ 的优先级,在查阅了MDN后,发现后置自增比加法运算符的优先级高 image.png

let a = 0;
let a1 = 1 + a++; // 1
a // 1
let b = 0;
let b1 = b++ + 1; // 1
b // 1

根据上述的测试来看 var t = num++ + num++;按照我的理解是 t = 0+1,所以最后的结果t=1

HTML标签的相关问题

HTML可以播放音频,使用标签就可以

video的src放的是本地还是远程,还是都可以? 我个人的理解是:src本质上是浏览器向该地址发出get请求或者post去获取,所以可以src的值可以是本地文件地址也可以是远程文件地址

字体倾斜的方法: font-style: italic;

font-family是用来设置使用什么字体

寻找字符串第一个不重复的字母

data: 'abcddcbatmnnmdfabc'
思路: 利用indexof('查找的字符',开始的位置)来解题
算法: 
const findUnrepeated = str => {
    for(let i=0;i<str.length;i++) {
        const ch = str[i];
        if(str.indexOf(ch) !== i && str.indexOf(ch,i+1) === -1) {
            return ch;
        }
    }
    return null;
}

不使用排序,找出第二大的数

data: [2,4,14,20,8,3,15]
思路: 
先将 arr[0] 赋值给 a,作为最大值;
再将 arr[1] 赋值给 b,作为第二大的值;
为了保证a b 最大和第二大的身份,我们要先对 a b 做一个大小的判断,将大的赋给 a,较小的赋给b;
从 index 2开始判断,如果 arr[i] 大于 a,就把 a 的值给 b, arr[i]a,继续保持 a 最大值 b 第二大的关系;
如果 arr[i] 范围在 [b,a] 中,即 arr[i] 大于b小于a,就把 arr[i] 赋给b;
算法:
const getMaxSecond = (arr) => {
    const a = arr[0];
    const b = arr[1];
    if(a<b) {
        const temp = a;
        a = b;
        b = temp;
    }
    for(let i=2;i<arr.length;i++) {
        if(arr[i] > a) {
            b = a;
            a = arr[i];
        } else if(arr[i] < a && arr[i] > b) {
            b = arr[i];
        }
    }
    return b;
}