关于javascript:腾讯云面试总结

42次阅读

共计 3521 个字符,预计需要花费 9 分钟才能阅读完成。

/*

  • 这是一个排序题,排序的规定如下:
  • 1、如果是数字成员,按大到小排序
  • 2、如果发现是字符串成员,则须要逐位比照,字符串中的字母,依据 a -> z -> A -> Z 排序,字符串中的数字,按 0 -> 9 排序,其它字符排在最初
  • 3、整体上,字符串成员在数字成员的后面
  • 4、其它成员排在最初
  • 编写函数 mixSort,要求如下:
  • 1、承受一个参数,可能是数组,也可能是其它值,如果是数组则进行排序,如果是其它值,间接返回原参数即可
  • 2、如果是数组,进行排序时,不得批改原数组
  • 3、返回值为一个数组
  • [10, 20, ‘abc’, {a: 1}] => [‘abc’, 20, 10, {a: 1}]
  • [‘abc’, ‘acc’, ‘a1c’, ‘abC’] => [‘abc’, ‘abC’, ‘acc’, ‘a1c’]

*/

/**

  • @param {any} arr
  • @return {any}

*/

js 判断一个变量是否为数组

Object.prototype.toString.call(value) === "[object Array]" // 为 true 则为数组 

js 判断是不是字符串

var value='1bc';

// 办法①:typeof(value)=='string'
// 办法②:Object.prototype.toString.call(value)=="[object String]" // 为 true 则为字符串 

js 判断是不是数字

typeof value === 'number' && !isNaN(value)

// 备注:if(val === "" || val ==null){return false;}
 
 if(!isNaN(val)){// 对于空数组和只有一个数值成员的数组或全是数字组成的字符串,isNaN 返回 false,例如:'123'、[]、[2]、['123'],isNaN 返回 false,
     // 所以如果不须要 val 蕴含这些非凡状况,则这个判断改写为 if(!isNaN(val) && typeof val === 'number' )
 return true;
 }

js 字符串比拟大小

//JavaScript 可能依据字符的 Unicode 编码大小逐位比拟字符串大小

var s = "JavaScript"; // 定义字符串间接量

var a = s.split(""); // 把字符串转换为数组

console.log(a);// 返回 (10) ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t"]

var s1 = a.sort (function(a,b){return a.localeCompare(b)
});// 对数组进行排序

console.log(s1); // 返回 (10) ["a", "a", "c", "i", "J", "p", "r", "S", "t", "v"]

a = s1.join(""); // 而后再把数组还原为字符串

console.log(a); // 返回字符串“aaciJprStv”
function mixSort(arr) {console.log(arr);
    if (Object.prototype.toString.call(arr) === "[object Array]") {let firstArr = []
      let secondArr = []
      let threeArr = []
      for (let i = 0; i < arr.length; i++) {//     if(/^[0-9]+.?[0-9]*/.test(arr[i])){if (!isNaN(arr[i]) && typeof arr[i] === 'number') {firstArr.push(arr[i])
          firstArr.sort(function (a, b) {return b - a;})
        } else if (typeof (arr[i]) == 'string') {let tempArr = arr[i].split("")
          // console.log('长期数组',tempArr)
          let Max = tempArr.sort(function (a, b) {return a.localeCompare(b) })
          secondArr.push(Max.join(""))
          secondArr.sort(function (a, b) {return b - a;})
        } else {threeArr.push(arr[i])
        }
      }
      console.log('将数组分为三个数组之一(数字)', firstArr)
      console.log('将数组分为三个数组之二(字符)', secondArr)
      console.log('将数组分为三个数组之三(其余)', threeArr)
      console.log('数字 + 字母 + 其余的组合', firstArr.concat(secondArr).concat(threeArr))
    } else {return arr;}
  },
  function main() {console.log(mixSort(1));
    console.log(mixSort({name: 'Tencent'}));
    console.log(mixSort({0: 1, 1: 'a'}));
    console.log(mixSort([21, 0, 0x16, 'QQ2020', 'qqIM', 'QQ3a', 'QQWechat', 'QQTencent', 'QQ2a', new Number(3), 'QQ_2020', 'TIM', 'QIDIAN', new Date(), new Date, 'qd', 'qqwechat']));
   }
  main(); 




我是在完结面试后才发现这个编程题考了这么多知识点,当初的编码如同还有些问题,欢送大佬探讨,实现了记得留言。面试时一看编程,傻眼了,哎,错失了面试机会……

腾讯云面试总结:

js 编程题波及相干常识:如上

数组排序:

判断一个变量是否为数组:

VUE 局部:

1. $nextTick() 的作用?

当你批改了 data 的值而后马上获取这个 dom 元素的值,是不能获取到更新后的值,你须要应用 $nextTick 这个回调,让批改后的 data 值渲染更新到 dom 元素之后再获取,能力胜利。(异步更新队列)

2.vuex  state action mutation commit dispath?

state 来存储利用中须要共享的状态;

mutations 只能是同步地更改状态;commit

action 异步地更改状态,action 并不间接扭转 state,而是发动 mutation。dispath

3.watch 和 computed 比拟?相同点?不同点?

computed 是计算属性,依赖其余属性计算值,并且 computed 的值有缓存,只有当计算值变动才会返回内容。

watch 监听到值的变动就会执行回调,在回调中能够进行一些逻辑操作。

所以一般来说须要依赖别的属性来动静取得值的时候能够应用 computed,对于监听到值的变动须要做一些简单业务逻辑的状况能够应用 watch。

4. 组件之间的通信?

父—> 子组件通信:prop 办法接管父组件传来的值;

子—> 父 $emit 触发父组件中子组件自定义的事件;

兄弟组件:bus 创立 vue 实例作为桥梁,传递信息;

vuex

5.vue 生命周期?beforeMount 和 mounted 的用法?

beforeMount 挂载组件到 dom 树之前触发,mounted 挂载组件到 dom 树之后触发

http 局部:

1.http 和 https 的区别?

①http 是超文本传输协定,信息是明文传输,https 则是具备安全性的 ssl 加密传输协定。

②http 和 https 应用的是齐全不同的连贯形式,用的端口也不一样,前者是 80,后者是 443。

③http 的连贯很简略,是无状态的;HTTPS 协定是由 SSL+HTTP 协定构建的可进行加密传输、身份认证的网络协议,比 http 协定平安。

2.Local Storage 和 cookie 的区别?

Cookies: 服务器和客户端都能够拜访;大小只有 4KB 左右;有有效期,过期后将会删除;

Local Storage 本地存储:只有本地浏览器端可拜访数据,服务器不能拜访本地存储直到成心通过 POST 或者 GET 的通道发送到服务器;每个域 5MB;没有过期数据,它将保留晓得用户从浏览器革除或者应用 Javascript 代码移除

3.token 存在哪里?

当你登陆胜利后,零碎会生成要给 token 并发给你,token 须要客户端保留,每次交互的时候把 token 带上,个别放在 header 里。HTML5 的话个别有 WebStorage(localStorage) 做保留,后端 redis 会设置生效工夫为一周

我的项目局部:

我的项目中用到的技术及你负责局部是哪些,随机施展喽!
心愿对你有帮忙,也心愿在我面试的时候也能够遇到一个凶恶的人!

正文完
 0