前端面试题(1)

1.输出

const obj1={a:1,b:20,c:30}
const obj2=obj1
obj2.b=100
const obj3={...obj1}
console.log(obj1')
console.log(obj2)
console.log(obj3)

answer:
在这里插入图片描述

2.null和undefined

写出以下输出:  
null==undefined		  //true 
null===undefined	    //false

3.js的假值有哪些?

false、null、undefined、NaN、0、“”(空字符串)

4.js中字符串的操作方法有哪些?写出他们的作用

1.length
获取字符串长度

2.str[idx]、charAt()
属性访问、返回字符串中指定下表位置的字符串

3.indexOf()、lastIndexOf()
返回字符串中第一个出现子串的索引、
返回字符串中最后一个出现子串的索引

4.search()
同indexof()、但search不支持设置从第二个开始位置参数

5.slice()
提取字符串的某个部分,并在新字符串中返回被提取的部分。
slice(a,b) //获取范围[a,b)
var str = "Apple, Banana, Mango";
var res = str.slice(7,13);  //res "Banana

6. substr()
substr(a,b) //截取字符串,范围是从下标为a的字符开始,截取长度为b
可为负数
该⽅法设置两个参数:起始索引(开始位置
),截取的长度。
var str = "Hello world!";
str.subst(3,4);  //"lo w"

7.replace()
⽤另⼀个值替换在字符串中指定的值,不会改变调⽤它的字符串。它返回的是新字符串。默认地,
只替换⾸个匹配
var str = "Hello world! hello";
var res = str.replace('llo','*');  // "He* world! hello"

8.concat()
连接字符

9.trim()
删除两端空白

10.split()
截取字符串为数组

5.js中数组的操作方法

1.arr.push()
数组末尾添加
2.arr.pop()
数组末尾删除
3.arr.unshift()
数组开始处添加
4.arr.shift()
数组开始删除
5.arr.concat()
数组拼接
6.arr.join()
指定字符连接变成字符串
7.arr.reverse()
数组倒序
8.arr.sort()
排序、按照Unicode
9.arr.map()
循环、返回新数组
10.arr.slice()
截取数组

6.js写一个队列

/*一个用数组实现的队列*/
function Queue(){
    this.dataStore = [];//存放队列的数组,初始化为空
    this.enqueue = enqueue;//向队列尾部添加一个元素
    this.dequeue = dequeue;//删除队首的元素
    this.theFront = theFront;//读取队首的元素
    this.back = back;//对取队尾的元素
    this.toStrings = toStrings;//显示队列内的所有元素
    this.empty = empty;//判断队列是否为空
}
function enqueue(element){
    this.dataStore.push(element);
}
function dequeue(){
    this.dataStore.shift();
}
function theFront(){
    return this.dataStore[0];
}
function back(){
    return this.dataStore[this.dataStore.length-1];
}
function toStrings(){
    return this.dataStore;
}
function empty(){
    if(this.dataStore.length == 0){
       return true;
    }else{
        return false;
    }
}
/*测试程序*/
var q = new Queue();
q.enqueue("aa");
q.enqueue("bb");
q.enqueue("cc");
console.log(q.toStrings());//[ 'aa', 'bb', 'cc' ]
q.dequeue();
console.log(q.toStrings());//[ 'bb', 'cc' ]
console.log(q.theFront());//bb
console.log(q.back());//cc

7.js写一个冒泡排序

 var arr2=[5,6,9,8,12,88,874,16];
    for(var i=0;i<arr2.length-1;i++){
      for(var j=0;j<arr2.length-i-1;j++){
          if(arr2[j]>arr2[j+1]){
            [arr2[j],arr2[j+1]]=[arr2[j+1],arr2[j]] //解构赋值
          }
      }
    }console.log(arr2)

其他:

你对自己的职业规划?
对薪资的要求?
你有啥想问我的吗?

第一次面试紧张、前后共40分钟、拿到了一个实习offer、回头复盘感觉需要提高的地方有许多。
下次记得问几点上下班?双休吗?
电脑是统一配还是用自己的?

加油!再接再厉!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高二水令

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值