git bisect是利用二分法的思想,来查找哪一次代码提交引入了错误
git stash 暂存
git rebase 合并
git fetch/clone 远程端下载至本地
JavaScript 中的 valueOf() 方法用于返回指定对象的原始值,若对象没有原始值,则将返回对象本身。
console.log([].valueOf() , [].toString()) // [] , ''
console.lgo({}.valueOf(). {}.toString()) // {}, [object Object]
3.排序算法中哪一种算法的时间复杂度是O(nlogn)?
A冒泡排序
B快速排序
C直接插入排序
D直接选择排序
选泡插n方
快归堆n老
4.通常情况下,一个URL的格式是
CSS权重顺序正确的是
!important>行内样式>ID选择器 >属性选择器> 元素选择器
面向对象编程设计的特点
封装 继承 多态
网络七层协议 应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。
javascript的基础数据类型 JS的数据类型有8种。Number、String、Boolean、undefined、object、Null、Symbol bigInt
Chrome浏览器都有哪些进程?
GPU 进程 渲染进程 插件进程
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
parseFloat
如果 parseFloat 在解析过程中遇到了正号(+)、负号(- U+002D HYPHEN-MINUS)、数字(0-9)、小数点(.)、或者科学记数法中的指数(e 或 E)以外的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数。
第二个小数点的出现也会使解析停止(在这之前的字符都会被解析)。
参数首位和末位的空白符会被忽略。
如果参数字符串的第一个字符不能被解析成为数字,parseFloat("FF2"); 则 parseFloat 返回 NaN。
parseFloat 也可以解析并返回 Infinity。
parseFloat 解析 BigInt 为 Numbers, 丢失精度。因为末位 n 字符被丢弃。
假设线上代码的分支是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;
在linux系统中,修改文件夹的权限使用的命令是
chown chmod
基础类型的复制会创建该值的一个副本,引用类型的复制只会复制指针,复制后的变量和复制前的变量都指向同一个对象,
基本数据类型是在栈内存中存储的,引用数据类型是在堆内存中进行存储的,引用类型的变量名和指针存在栈中,引用类型的值(也就是对象)存在堆中
正则表达式中
*
匹配前一个表达式 0 次或多次。
+
匹配前面一个表达式 1 次或者多次。
?
匹配前面一个表达式 0 次或者 1 次。
.
(小数点)默认匹配除换行符之外的任何单个字符。
例如,/.n/ 将会匹配 "nay, an apple is on the tree" 中的 'an' 和 'on',但是不会匹配 'nay'。
\d
匹配一个数字。等价于 [0-9]。
其实“-”在紧挨边界的时候不需要转义,也就是说可以写成:
[a-z-] 或 [-a-z]
创建的数组长度为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
执行下列代码,输出结果为()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选项正确。
Angular指令中scope:true可以继承父scope
scope: true和transclude: true会创建新的子作用域,并且进行原型继承;
scope: {...} 会创建新的独立作用域,不会进行原型继承; 默认情况下创建directive使用了scope: false,不会创建子作用域.