js基础知识
qq_33712668
这个作者很懒,什么都没留下…
展开
-
简单面试题
JSJs数据类型,区别是什么,如何判断基本:undefined,null,boolean,number,string引用类型:普通对象,数组对象,日期对象等等symbol区别:按值引用和按址引用,值类型存在于栈内存中,引用类型会在对内存中为其开辟一段空间typeof 有限制,判断引用类型判断不出来,都是object,引用类型只有函数可以判断出来,且null也是objectinstanceof后面只可以跟引用类型,返回值是boolean值,不可以判断null,null直接用===就好了万能方原创 2020-12-03 15:50:25 · 288 阅读 · 0 评论 -
前端面试题总结--css篇
摘要经过实习秋招的面试,总结了一些前端面试题,此处为css篇章,答案是简略答案,详细可自行搜索1. 盒模型margin,border,padding,content在标准盒模型中,width设的是content的宽度在IE怪异盒模型中,width设的是content+padding的宽度标准 box-sizing: content-boxie怪异 box-sizing: bor...原创 2020-03-26 15:52:57 · 183 阅读 · 0 评论 -
js面试题及简要答案(持续更新)
文章目录基本类型和方法js值类型和引用类型的区别call,apply,bind区别undefined === null?什么是变量提升Object.create是什么JS类型判断的方法有哪些JS类型和基础类型数组去重的几种方法原型解释原型和原型链new一个实例的过程如何用class实现继承如何用class实现继承constructor和prototype的区别实现继承的几种方法作用域解释作用域、作...原创 2020-03-26 15:27:25 · 920 阅读 · 0 评论 -
javascript快速排序
递归法这个比较简单,对一个数组取中间一位(要把它提出来,删掉),然后遍历剩余数组,比该值小的放左边,大的放右边。对分好的数组继续执行这个方法。function jsQuickSort(array) { if (array.length <= 1) { return array; } const pivotIndex = Math.floor(arr...原创 2020-03-26 14:05:40 · 126 阅读 · 0 评论 -
call、apply和bind
区别bind是绑定,call和apply都是绑定并执行像箭头函数,箭头函数的this在定义时绑定,内部用了bindcall和apply的区别,apply接收两个参数,第一个参数是要绑定给 this 的值,第二个参数是一个参数数组,和 call 很相似,第一个参数是 this 的指向,从第二个参数开始是接收的参数列表。...原创 2020-03-20 01:03:55 · 103 阅读 · 0 评论 -
js几种继承方式
原型链继承原型链本身就是为了继承的function Animal (color) { this.color = color}Animal.prototype.sleep = function () { console.log('hu hu hu...')}function Cat () {}Cat.prototype = Animal.prototype // 方法1Cat...原创 2020-03-20 00:53:25 · 118 阅读 · 0 评论 -
数组和对象的深浅拷贝
文章目录浅拷贝浅拷贝和赋值如何实现浅拷贝对象数组深拷贝json实现Object.assign迭代递归法浅拷贝浅拷贝和赋值基本数据类型可以直接赋值引用数据类型直接赋值,那是指向同一个引用地址,所以用浅拷贝浅拷贝只复制一层对象的属性,并不包括对象里面的为引用类型的数据如何实现浅拷贝对象function shallowCopy(src) { var dst = {}; ...原创 2019-09-30 14:07:46 · 369 阅读 · 0 评论 -
如何判断js数据类型
文章目录数据类型有哪些判断数据类型的方法typeofinstaceofprototypeconstructor数据类型有哪些基本数据类型:number,string,boolean,null,undefined引用数据类型:普通对象,数据对象,日期对象,函数对象es6新增一个symbol判断数据类型的方法typeoftypeof只能用来判断基本数据类型,如null,srting,...原创 2019-09-30 11:33:54 · 156 阅读 · 0 评论 -
详解变量提升和闭包的应用
文章目录堆栈内存变量提升带var和不带var的区别作用域链的拓展闭包什么是闭包闭包的应用堆栈内存栈内存:作用域提供一个供js代码自上而下执行的环境(代码都是在栈内存中执行)存储基本数据类型值释放:当栈内存被销毁,存储的那些基本值也跟着被销毁了(一般函数执行完成所形成的私有作用域会自动释放,除非某些内容被栈内存以外的变量占用了此时栈内存不能释放)全局栈内存只有在页面关闭的时候被释放堆...原创 2019-09-01 19:48:35 · 479 阅读 · 0 评论 -
js浮点乘除bug
在做项目的时候涉及到百分数小数的显示转化,对小数进行乘除发现出不精确的问题,比如a=0.69,c=a*10,得到的确是6.8999999999999995,这是一个JS浮点数运算Bug,于是找到了乘除的解决办法,代码如下文章目录浮点乘浮点除浮点乘function floatMul (arg1, arg2) { // 解决浮点乘法 let m = 0, s1 = arg1...原创 2019-08-28 15:52:28 · 192 阅读 · 0 评论 -
项目中对数组和字符串的处理
最近做的项目中涉及前端做数据的聚合和处理,用到了很多数组的方法,所以依据功能进行分类总结防止混淆文章目录1. 遍历类(只有直接对item操作才会改变,返回值需要特别注意)forEachmapfilterfindsomeeveryfor遍历2. 增加删除类(改变原数组,返回值需要特别注意)push&&popshift&&unshiftsplice3. 截取和拼接...原创 2019-08-28 15:32:16 · 303 阅读 · 0 评论 -
ES6常用语法
1. let和constletlet和var的域的探讨不同var只有全局和局部(函数)let只要遇到一个代码块就是一个域,比较能体现区别的就是for循环for(var i=0,i<5,i++){console.log(i);}console.log(i)//得到的输出是1 2 3 4 5//i没有被销毁for(let i=0,i<5,i++){console....原创 2019-05-15 09:47:16 · 117 阅读 · 0 评论 -
浅分析js运行机制(堆栈内存面试题)
一道面试题var a=12;var b=a;b=13;console.log(a);//12var obj1={n:100};var obj2=obj1;obj2.n=200;console.log(obj1.n);//200 变了 why????1 当浏览器内核/引擎渲染js时候会提供一个js代码运行环境。称之为全局作用域(global/window scope)2 代码...原创 2019-05-25 22:43:04 · 969 阅读 · 0 评论 -
javascript数据类型详解
数据类型基本数据类型(值类型)Number string Boolean null undefined(js独有)引用数据类型对象object 普通对象 数组对象 正则对象 日期对象函数functionES6新增加的一个特殊类型symbolNumber中的NaN不是一个数字var o={name:’yue’,age:’23’} 普通对象 包含多组属性名属性值var ...原创 2019-05-25 22:47:10 · 154 阅读 · 0 评论 -
js中的判断操作语句详解(易错题)
JS中的判断操作语句1.if/else if/else只要有一个条件成立,后面不管是否存在成立的条件都不再判断执行了【关于条件可以怎么写?】不管你在条件判断中写什么,最后总要把其计算出TRUE/FALSE来判断条件是否成立。(把其他类型的值转化为布尔类型,只有0 NaN ‘’ null undefined五个是false,其余都是true)比如if(0)'3px'/3;=>NaN ...原创 2019-05-25 22:53:33 · 836 阅读 · 0 评论 -
原型链相关知识
先说构造函数比如我想创建很多个user对象,一个一个创建太麻烦,弄个工厂函数function user (name, age, sex) {var person = {};person.age = age;person.name = name;person.sex = sex;return person;}//这是一个工厂函数var whh = user('whh', 20, ...原创 2019-07-25 00:50:15 · 156 阅读 · 0 评论 -
ajax的同步异步易混淆点
文章目录基础例1例2例3例4基础浏览器是多线程的,一个进程有多个线程。js是单线程,模拟异步。所以分为主任务队列,等待任务队列【readyState值】//=>0 刚开始创建ajax对象,还没有发送//=>1 已经执行了open操作//=>2 已经发送ajax请求,已经收到响应头信息但还没收到响应主体//=>3 响应主体正在返回//=>4 响应主体已...原创 2019-08-08 21:06:52 · 288 阅读 · 0 评论 -
ajax及http基础知识
ajax操作AJAX 这个词是 JavaScript 脚本发起 HTTP 通信的代名词,也就是说,只要用脚本发起通信,就可以叫做 AJAX 通信具体定义见ajax,局部刷新与全局刷新a.【创建ajax实例】,XMLHttpRequest对象let xhr = new XMLHttpRequest();b. 【打开请求】:发送请求之前的配置项目HTTP METHOD 请求方式GET...原创 2019-08-08 21:08:47 · 458 阅读 · 0 评论 -
js任意进制转换--parseInt与toString
js任意进制转换--parseInt与toString任意进制=>十进制(使用parseInt)十进制=>任意进制(使用toString)把m进制转换为n进制任意进制=>十进制(使用parseInt)parseInt(str,x)作用:将str以x进制转化为十进制输出输入:一般来说第一个参数是字符串输出:number类型parseInt('110',2)//110作为...原创 2019-05-14 23:13:39 · 567 阅读 · 0 评论