前端面试自我检测题目查缺补漏

本文涵盖了Git的一些关键命令如gitbisect、gitstash和gitrebase,以及JavaScript的基础知识,包括数据类型、valueOf()方法和排序算法的时间复杂度。还讨论了URL结构、CSS选择器权重、网络协议层次和Angular指令的作用域特性。此外,提到了JavaScript的isNaN()和parseFloat()函数的用法,以及正则表达式和数组创建的几种方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. git bisect是利用二分法的思想,来查找哪一次代码提交引入了错误

git stash 暂存

git rebase 合并

git fetch/clone 远程端下载至本地

  1. JavaScript 中的 valueOf() 方法用于返回指定对象的原始值,若对象没有原始值,则将返回对象本身。

console.log([].valueOf() , [].toString()) // [] , ''
console.lgo({}.valueOf(). {}.toString()) // {}, [object Object]

3.排序算法中哪一种算法的时间复杂度是O(nlogn)?

A冒泡排序

B快速排序

C直接插入排序

D直接选择排序

选泡插n方
快归堆n老

4.通常情况下,一个URL的格式是

  1. CSS权重顺序正确的是

!important>行内样式>ID选择器 >属性选择器> 元素选择器

  1. 面向对象编程设计的特点

封装 继承 多态

  1. 网络七层协议 应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。

  1. javascript的基础数据类型 JS的数据类型有8种。Number、String、Boolean、undefined、object、Null、Symbol bigInt

  1. Chrome浏览器都有哪些进程?

GPU 进程 渲染进程 插件进程

  1. isNaN()

非数值为true
如果isNaN函数的参数不是Number类型, isNaN函数会首先尝试将这个参数转换为数值,然后才会对转换后的结果是否是NaN进行判断。空字符串和布尔值分别会被强制转换为数值 0 和 1
isNaN(true);      // false
isNaN(null);      // false
isNaN("37");      // false: 可以被转换成数值 37
isNaN("37.37");   // false: 可以被转换成数值 37.37
isNaN("37,5");    // true
isNaN('123ABC');  // true:  parseInt("123ABC") 的结果是 123,但是 Number("123ABC") 结果是 NaN
isNaN("");        // false: 空字符串被转换成 0
isNaN(" ");       // false: 包含空格的字符串被转换成 0
  1. parseFloat

  • 如果 parseFloat 在解析过程中遇到了正号(+)、负号(- U+002D HYPHEN-MINUS)、数字(0-9)、小数点(.)、或者科学记数法中的指数(e 或 E)以外的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数。

  • 二个小数点的出现也会使解析停止(在这之前的字符都会被解析)。

  • 参数首位和末位的空白符会被忽略。

  • 如果参数字符串的第一个字符不能被解析成为数字parseFloat("FF2"); 则 parseFloat 返回 NaN。

  • parseFloat 也可以解析并返回 Infinity。

  • parseFloat 解析 BigInt 为 Numbers, 丢失精度。因为末位 n 字符被丢弃。

  1. 假设线上代码的分支是master,本地修复bug的分支为fix,上线时下列哪些git操作是正确的

git checkout master; git merge fix;git push origin master;
git checkout fix; git rebase master;git checkout master;git merge fix;git push origin master;
  1. 在linux系统中,修改文件夹的权限使用的命令是

chown chmod
  1. 基础类型的复制会创建该值的一个副本,引用类型的复制只会复制指针,复制后的变量和复制前的变量都指向同一个对象,

基本数据类型是在栈内存中存储的,引用数据类型是在堆内存中进行存储的,引用类型的变量名和指针存在栈中,引用类型的值(也就是对象)存在堆中
  1. 正则表达式中

*
匹配前一个表达式 0 次或多次。
+
匹配前面一个表达式 1 次或者多次。
?
匹配前面一个表达式 0 次或者 1 次。
.
(小数点)默认匹配除换行符之外的任何单个字符。

例如,/.n/ 将会匹配 "nay, an apple is on the tree" 中的 'an' 和 'on',但是不会匹配 'nay'。
\d
匹配一个数字。等价于 [0-9]。
其实“-”在紧挨边界的时候不需要转义,也就是说可以写成:
[a-z-] 或 [-a-z]
  1. 创建的数组长度为5

const array = [,,,,,];const array = new Array(5);const array = new Array('', '', '', '', '')

  • 数组字面量
    可以通过使用数组字面量创建数组:
    const fruits = ['Apple', 'Banana'];

const f = [,,] (长度为3的数组

  • 单个参数的 Array 构造函数

可以通过单个数字参数的构造函数创建数组,数组的长度为传入的参数,该数组不包含任何实际的元素。

const fruits = new Array(2);

console.log(fruits[0]); // undefined

  1. 执行下列代码,输出结果为()undefined 20

var定义时存在变量提升!!!

var val = 12;
function fun1(){
    console. log(val);
    var val = 20;
    console.log(val);
}
fun1();
当局部变量和全局变量同时存在时,局部变量的优先级更高。在函数fun1内部,由于存在变量提升, 会先使用var声明局部变量val,而变量的赋值并不会跟着一起提升,接着使用console.log()输出val,由于val变量已声明但未赋值,故输出结果为undefined,然后再对val进行赋值,其值为20,最后再次输出val,输出结果为20,C选项正确。
  1. Angular指令中scope:true可以继承父scope

scope: true和transclude: true会创建新的子作用域,并且进行原型继承;
scope: {...} 会创建新的独立作用域,不会进行原型继承; 默认情况下创建directive使用了scope: false,不会创建子作用域.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值