js面试(一)

8.什么是window对象?什么是document对象?

  • window对象是指浏览器打开的窗口。
  • document对象是Document对象(HTML 文档对象)的一个只读引用,window对象的一个属性。
    闭包案例—数组每隔一秒打印一个数
 // 方法一,利用立即执行函数闭包效果,时间要乘以i
      function demo(arr) {
   
        for (var i = 0; i < arr.length; i++) {
   
          setTimeout(
            ((i) => {
   
              return function () {
   
                console.log(arr[i]);
              };
            })(i),
            1000 * i
          );
        }
      }

      demo([1, 4, 6, 9]);

      // 方法二,let命令在块作用域有效,相当于闭包
      function demo1(array) {
   
        for (let i = 0; i < array.length; i++) {
   
          setTimeout(() => {
   
            console.log(array[i]);
          }, 1000 * i);
        }
      }

      demo1([1, 4, 6, 7]);

提取URL中的各个GET参数, 详情
提取get参数,以对象的形式打包输出
例如http://item.taobao.com/item.htm?name=xiaoming&sex=boy&age=18&weight=70kg&e
输出为{name:“xiaoming”,sex:“boy”,age:“18”,weight:“70kg”,e=undefined};

var str =
        "http:/\/item.taobao.com/item.htm?name=xiaoming&sex=boy&age=18&weight=70kg&e";
      function serilizeUrl(url) {
   
        var result = {
   };
      // 字符串split分割成数组, 数组split分割成字符串
        // console.log(url.split("?"));  //["http://item.taobao.com/item.htm", "name=xiaoming&sex=boy&age=18&weight=70kg&e"]
        url = url.split("?")[1];  //name=xiaoming&sex=boy&age=18&weight=70kg&e
       
        var map = url.split("&"); //["name=xiaoming", "sex=boy", "age=18", "weight=70kg", "e"]
      
        len = map.length
        for (var i = 0; i < len; i++) {
   
          result[map[i].split("=")[0]] = map[i].split("=")[1];
        }
        return result;
      }
      console.log(serilizeUrl(str));

js生成1到100的随机数,js生成随机数使用math.random()函数

     function random(min,max){
   
          // Math.floor向下取整, ceil向上取整, round,四舍五入
          return Math.floor(Math.random()*(max-min) )+ min
        }

        console.log(random(1,100));

页面出现空白,怎么排查定位问题?
1、先确保网络连接通畅。
2、查看网络url地址是否输入有误。
3、打开控制台查看报错信息。
4、查看接口访问是否有请求。
5、查看路由是否有path或者name的错误,导致加载了不存在的页面。
一般这几个步骤走完,基本能够定位问题了

9.JS 对象和字符串互转

JSON.stringify()用于从一个对象解析出字符串
例如:var a = {
   a:1,b:2},JSON.stringify(a)
//输出‘{
   “a”:1,“b”:2}’
JSON.parse()从一个json字符串解析出json对象.
var str = '{"name":"huangxiaojian","age":"23"}'  
 json.parse(str)
 //输出
    str = {
   
    name:"huangxiaojian",
    age:"23"
    }

10.请用简单的语言描述数组方法pop(),push(),unshift(),shift()

  • pop(),删除数组的最后一个元素,把数组长度减1,并返回它删除的元素的值,如果数组为空,则POP不改变数组,并返回undefined值
  • push(),向数组的末尾添加一个或多个元素,并返回新的长度
  • unshift(),向数组的开头添加一个或多个元素,并返回新的长度
  • shift()方法,将数组的第一个元素从其中删除,并返回新的长度

11数组的截取和合并
11.1将数组拼接成字符串join

let arr = ['h', 'e', 'l', 'l', 'o'];
let str = arr.join('-');  // h-e-l-l-o
arr.join(); // 'h,e,l,l,o'
arr.join(''); // hello

11.2 array.concat([item1[, item2[, . . . [,itemN]]]]); -->合并数组;浅拷贝

let arr = [1,2,3];
let arr1 = [4,5,6]
arr.concat(arr1)  //[1, 2, 3, 4, 5, 6]

11.3.数组截取slice(start, end)方法,start(包含)和end(不包含)来指定位置,负数从字符串的末尾进行开始。

let arr = [1,2,3,4,5];
arr.slice(1,3); // [2,3];
arr [1,2,3,4,5]//不改变原数组
arr.slice(-1); // [5]

114.数组截取splice(start, end)方法,start(包含)和end(包含)来指定位置

let arr = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
arr.splice(1,2); // ["Orange", "Lemon"]  arr: ["Banana", "Apple", "Mango"]
//注意:当为0时会返回原数组,会改变原数组,原数组返回的就是截取剩余的部分。

12。将字符串分割成数组,split()方法,用于把一个字符串分割成数组

"2:3:4:5".split(":")	//将返回["2", "3", "4", "5"]
"|a|b|c".split("|")	//将返回["", "a", "b", "c"]

求[1, 10, 11, -1,’-5’,12, 13, 14, 15, 2, 3, 4, 7, 8, 9]内最大值与最小值之差

// 来一个很粗糙的版本,只当传入是数组且可以隐性转为数字的
function MaxMinPlus(arr) {
   
  // 返回最大值与最小值之差
  return Array.isArray(arr) ? Math.max.apply(Math, arr) - Math.min.apply(Math, arr) : console.log('传入的不是数组亦或者未能解决的错误')
}

// 结果是 20

一个数组中 par中存放了多个人员的信息,每个人员的信息由 name 和 age 构成({name:‘张三’,age:15}).请用 JS 实现年龄从小到大的排序;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值