![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
vues
这个作者很懒,什么都没留下…
展开
-
Number和parseInt真的有很大的区别
Number() 和 parseInt 都接受输入中的空格。在旧版本的 JavaScript 中,如果字符串以 0 开头,则基数设置为 8(八进制)。由于该方法在不同版本的 JavaScript 和浏览器中可以实现不同,因此建议传递基数。Number() 和 parseInt() 通常用于将字符串转换为数字。如果未指定,则将根据该值自动设置。parseInt(‘12 345’) // 12,不是12345。Number() 转换类型,而 parseInt 解析输入值。在其他情况下,基数为 10(十进制)。原创 2023-08-02 01:05:22 · 325 阅读 · 0 评论 -
为什么要读源代码,如何阅读源代码
看源码的意义看源码只是一种方法、手段,而不是目的。我也曾经给自己制定过“阅读xxx源码”的目标,现在看起来真的很蠢,一点不smart(specific、measurable、attainable、relevant、time-bound)。只有搞清楚了阅读代码的目标,才能有的放矢,抓住重点,高效达成任务。看源码的意义总结起来包含但不限于以下几点:第一:解决问题(BUG)只要是代码,就会有bug,只是说bug的多与少、深与浅罢了。现在大家都喜欢发布、使用开源项目,不同的开源项目社区成熟...原创 2020-05-16 21:38:22 · 706 阅读 · 0 评论 -
js的冒泡排序算法
js的冒泡排序算法原创 2022-11-06 21:14:58 · 171 阅读 · 0 评论 -
res.setCookie和req.getCookie的实现(cookie)
1、keyvalue2、domain限制某个域可以访问3、path表示在那个路径下可以访问cookie/表示任何路径都可以/read以路径开头即可4、expires(绝对时间)/max-age(相对时间)过期时间5、httpOnly是否是服务端设置的,前端不能更改6、如果不设置domain和path每次请求都会带上cookie7、一般情况下会设置do...原创 2020-04-11 01:55:56 · 1065 阅读 · 0 评论 -
mergeOptions 这可是vue中常用的合并对象方法
Vue中常用合并对象的方法// {a:1} {b:2} Object.assisn()function isObject(val){ return typeof val=='object' && val !==null;}function mergeOptions(parent,child){ const options={}; for(let key in parent){ mergeField(key); } fu.原创 2021-08-16 21:24:20 · 1231 阅读 · 1 评论 -
二叉树的后续遍历:leetcode-145
最近打开csdn红包图片满天飞,很烦。原创 2021-10-24 23:48:37 · 104 阅读 · 0 评论 -
js中判断是数组还是对象
js判断是数组还是对象原创 2022-11-04 11:10:17 · 131 阅读 · 0 评论 -
类的装饰器:修饰类、参数、属性
// 装饰器 es7的 实验性语法 后面可能会有改动 vue2刚开始用的就是装饰器// 装饰器的作用 就是扩展类, 扩展类中的属性和方法function addSay1(target:any){ return function(target:any){ console.log(1); }}function addSay2(target:any){ return function(target:any){ console.log(...原创 2021-08-22 15:31:35 · 319 阅读 · 0 评论 -
Math.floor((i-1)/2) 地板除的经典写法【(i-1) >> 1】
Math.floor((i-1)/2) 地板除的经典写法【(i-1) >> 1】原创 2021-09-05 21:18:42 · 505 阅读 · 0 评论 -
JS和JSON的区别
JS和JSON的区别JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,JSON格式的数据,主要是为了跨平台交流数据用的。但JSON和JavaScript确实存在渊源,可以说这种数据格式是从JavaScript对象中演变出来的,它是JavaScript的一个子集。JSON本身的意思就是JavaScript对象表示法(JavaScript Object ...原创 2019-03-13 11:29:39 · 19286 阅读 · 1 评论 -
暂时性死区
1、定义暂时性死区:在代码块内,使用let和const命令声明变量之前,该变量都是不可用的,语法上被称为暂时性死区。2、相关:let 和const 是使用块级作用域,而var 是使用函数作用域let 和 const 声明之前访问对应的变量和常量,会抛出ReferenceError错误,但在var 声明之前就访问对应的变量,会得到undefined3、本质暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和原创 2021-08-12 23:22:49 · 635 阅读 · 0 评论 -
最佳面试题
HTMLHTML5新特性,语义化浏览器的标准模式和怪异模式xhtml和html的区别使用data-的好处meta标签canvasHTML废弃的标签IE6bug,和一些定位写法cssjs放置位置和原因什么是渐进式渲染html模板语言metaviewport原理CSS盒模型,box-sizingCSS3新特性,伪类,伪元素,锚伪类CSS实现隐藏页面的方式如何实现水平居中和垂直居中。说说position,display请解释...原创 2021-09-23 00:54:07 · 193 阅读 · 0 评论 -
js的filter
js的filter原创 2022-04-17 19:21:37 · 20830 阅读 · 0 评论 -
if(a==1 && a==2 && a==3)为true的原因是什么呢?
if(a==1 && a==2 && a==3)原创 2022-11-12 22:41:36 · 327 阅读 · 0 评论 -
leetcode最高频的栈结构试题
前端栈结构试题原创 2022-10-24 23:31:57 · 93 阅读 · 0 评论 -
手写jquery代码
手写jquery的框架原创 2022-10-23 23:46:26 · 259 阅读 · 0 评论 -
js的new关键字做了4步操作:创建空对象、更改原型链、改变this指向、判断返回值类型
js的new关键字做了4步操作:创建空对象、更改原型链、改变this指向、判断返回值类型原创 2022-10-23 21:08:58 · 396 阅读 · 0 评论 -
js中的this指向上级调用者,apply传入数组,call传入对象
js中的this指向上级调用者,apply传入数组,call传入对象原创 2022-10-23 20:23:30 · 245 阅读 · 0 评论 -
js经典试题1
性能优化:懒加载、冻结的对象freeze、数据流的事情、chorme中优化瀑布流,重绘回流了,motterforweb安全:sql注入,input框转译 xss攻击组织架构:高耦合的项目解耦,数据层面的管理、二次封装、数据流的管理,架构分的越细越好。越好维护越好webpack的插件机制,mvvm:mvc:model、controller、viewm-v-vm:Model-View-ViewModel:即模型-视图-视图模型。【模型】指的是后端传递的数据。【视图】指的是所看到的页面。【视图模型】原创 2021-08-29 11:57:48 · 147 阅读 · 0 评论 -
webpack配置
##webpack安装-安装本地的webpack-webpackwebpack-cli-D开发模式下使用,不需要上线使用-yarnaddwebpackwebpack-cli-D##webpack可以进行零配置-打包工具->打包工具输出后的结果(js模块);-打包(支持我们的js的模块化);##手动配置webpack-默认配置文件的名字webpack.config.js-webpack具有优化的功能-...原创 2021-08-21 16:52:47 · 148 阅读 · 0 评论 -
js数组和对象的判断?
1、instanceoffunction isArray(obj) { return obj instanceof Array;}function isObject(obj){ return obj instanceof Object;}var arr=[1,2,3,4,5,6];var object={name:'jim'};console.log(isArray(arr),isObject(object));2、Object.prototype.toString原创 2021-08-17 10:06:06 · 127 阅读 · 0 评论 -
函数柯里化:判断js的数据类型【典型】
//函数的柯里化和反柯里化//判断变量的类型//常用判断类型的方法有四种typeofinstanceofObject.prototype.toString.call();//1、typeof不能判断对象类型typeof[]typeof{}//2、constructor可以找到这个变量是通过谁构造出来的,({}).constructor//3.判断谁是谁的实例__proto__//4.Object.prototype.toS...原创 2021-08-11 02:02:17 · 113 阅读 · 0 评论 -
js为false的值,别整错了
下面6种值转化为布尔值时为false,其他转化都为true1、undefined(未定义,找不到值时出现)2、null(代表空值)3、false(布尔值的false,字符串"false"布尔值为true)4、0(数字0,字符串"0"布尔值为true)5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN==="number")6、""(双引号)或''(单引号) (空字符串,中间有空格时也是true)注意空数组空对象,负值转的布尔值时都为true...原创 2021-08-11 00:47:10 · 691 阅读 · 0 评论 -
GET和POST的区别,何时使用POST?
GET和POST的区别:GET:一般用于查询数据,使用URL传递参数,由于浏览器对地址栏长度有限制,所以对使用get方式所发送信息的数量有限制,同时浏览器会记录(历史记录,缓存)中会保留请求地址的信息,包括地址后面的数据。get 只能发送普通格式(URL 编码格式)的数据。POST:一般用于向服务器发送数据,对所发送的数据的大小理论上是没有限制,浏览器会缓存记录地址,但是不会记录 post 提交的数据。post 可以发送纯文本、URL编码格式、二进制格式的字符串,形式多样。在以下情况中,请使用原创 2021-08-10 23:24:18 · 1217 阅读 · 0 评论 -
尾递归、尾调用
1、尾递归现在就轮到本篇文章的主角——尾递归了,看一下下面这段简单的递归代码:const sum = (n) => { if (n <= 1) return n; return n + sum(n-1)}就是计算从1到n的整数的和,显然这段代码并不是尾递归,因为sum(n-1)调用后还需要一步计算的过程,所以当n较大时就会导致栈溢出。我们可以把这段代码改为尾递归的形式:const sum = (n, prevSum = 0) => { if (n <...原创 2021-08-10 22:56:59 · 182 阅读 · 0 评论 -
什么是柯里化和尾递归
是把接收多个参数的函数 变换成接收一个单一参数的函数,并且返回接收余下的参数而且 返回结果的新函数的技术// 普通的add函数function add(x, y) { return x + y}// Currying后function curryingAdd(x) { return function (y) { return x + y }}add(1, 2) // 3curryingAdd(1)(2) // 3原创 2021-08-10 22:51:02 · 173 阅读 · 2 评论 -
数组扁平化
对于[1, [1,2], [1,2,3]]这样多层嵌套的数组,我们如何将其扁平化为[1, 1, 2, 1, 2, 3]这样的一维数组呢:1.ES6的flat()const arr = [1, [1,2], [1,2,3]]arr.flat(Infinity) // [1, 1, 2, 1, 2, 3]2.序列化后正则const arr = [1, [1,2], [1,2,3]]const str = `[${JSON.stringify(arr).replace(/(\[|\.原创 2021-07-31 11:06:57 · 76 阅读 · 0 评论 -
最全正则表达式
1、/i (忽略大小写)2、/g (全文查找出现的所有匹配字符)3、/m(多行查找)4、/gi (全文查找、忽略大小写)5、/ig(全文查找、忽略大小写)正则表达式中/i,/g,/ig,/gi,/m的区别和含义/i (忽略大小写)/g (全文查找出现的所有匹配字符)/m (多行查找)/gi(全文查找、忽略大小写)/ig(全文查找、忽略大小写)即new RegExp("模式"[,"标记"]))pattern(模式)表示正则表达式的文本 fl...原创 2021-07-29 21:03:23 · 148 阅读 · 0 评论 -
splice 直接修改原数组,slice创建新数组
1、slice 创建新数组,原数组不变1、slice slice是指定在一个数组中的元素创建一个新的数组,即原数组不会变var color = new Array('red','blue','yellow','black');var color2 = color.slice(1,2);alert(color); //输出 red,blue,yellow,blackalert(color2); //输出 blue;注意:这里只有第二项一个值 2、splice spl原创 2021-07-12 21:10:47 · 6380 阅读 · 0 评论 -
js中的原型prototype和__proto__
// 原型 prototype 原型链 __proto__// 每一个函数 都有一个prototype属性// 每一个对象都有一个__proto__属性function Animal(){ this.type='哺乳类'}Animal.prototype.type='哺乳';let animal=new Animal();console.log(animal.__proto__===Animal.prototype);delete animal.typeconsole..原创 2021-03-20 20:56:39 · 142 阅读 · 0 评论 -
js的深拷贝
// 深拷贝和浅拷贝的区别?如何实现?// 深拷贝:拷贝后的结果 更改是不会影响拷贝前的 拷贝前后是没有关系的// 浅拷贝:改变前的内容,会对拷贝之后的有影响 拷贝前和拷贝后是有关系的// 引用关系的问题// ...运算符 只能拷贝一层 一层运算的时候是深拷贝,多层对象的时候是浅拷贝 典型的浅拷贝let obj={ name:'jim', address:{ x:100, y:100 }}let o={...ob..原创 2021-03-20 19:51:26 · 131 阅读 · 0 评论 -
js的数组方法
整理了以下数组方法join()push()和pop()shift() 和 unshift()sort()reverse()concat()slice()splice()indexOf()和 lastIndexOf() (ES5新增)forEach() (ES5新增)map() (ES5新增)filter() (ES5新增)every() (ES5新增)some() (ES5新增)join,就是把数组转换成字符串,然后给他规定个连接字符,默认的是逗号( ,) 书写格式:.原创 2021-03-15 19:21:43 · 81 阅读 · 0 评论 -
箭头函数
/*******1.如果没有return可以不写大括号*2.如果参数是一个可以省略小括号*3.小括号和大括号之间有个箭头*4.箭头函数没有function的关键字*5.函数高级函数问题*6.箭头函数es6写起来简单可以解决this的问题**/example:let a=c=>d=>c+d;console.log(a(1)(2));...原创 2021-03-13 09:54:02 · 107 阅读 · 0 评论 -
bind、call、apply的特点
1、bind 可以改变绑定this指向,板顶参数let obj = { name: "jim",};function fn() { this.say="说话"; console.log(this);}/*** * 1、bind 的方法可以绑定this指向, 绑定参数 * 2、返回一个绑定后的函数 (高阶函数) * 3、如果绑定的函数被new了,当前函数的this 就是当前的实例 * 4、new出来的结果,可以找到原有类的原型 */Function.prototy原创 2021-02-11 11:35:55 · 266 阅读 · 2 评论 -
typeof 、instanceof、Object.prototype.toString.call([])、String[Symbol.hasInstance](str)判断数组的区别?
1、null和undefined的时候,一般采用== 主要是:是否对类型进行校验2、typeof 可以检验6种原始数据类型3、Object.prototype.toString.call([])不能校验自定义类型4、[] instanceof Array 只能校验已经存在的。console.log(null==undefined);/****typeof和instanceOf的区别?*typeof可以检验6种原始数据类型...原创 2021-02-11 10:29:44 · 242 阅读 · 1 评论 -
防抖和节流
1、节流 就是保证一段时间内,核心代码只执行一次。(控制流量)2、防抖 就是一段时间结束后,才能出发一次事件,如果一段时间未结束再次触发事件,就会重新开始计算时间。/**** * * 性能优化: * * 优化高频率事件 onscroll oninput resize onkeydown keydown * * throttle 节流 * * 用户scroll 和resize 行为会导致页面 不断重新渲染,如果在绑定的回调函数中大量操...原创 2021-02-08 02:26:04 · 124 阅读 · 0 评论 -
webComponent的实战案例
<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <title>文档标题</title></head><body> <zf-button t.原创 2021-02-07 12:18:55 · 431 阅读 · 0 评论 -
js数组中的对象排序和按日期排序
1、数组中的对象排序that.sjjsList.sort(function(a,b){ if (a.jsbl === b.jsbl) { return a.distcode-b.distcode } else { return b.jsbl - a.jsbl; } ...原创 2020-08-02 21:29:12 · 2101 阅读 · 0 评论 -
cookie 和 session 和 localStorage的区别
##cookie和session和localStorage的区别-localstorage和sessionStorage本地存储(发送请求是不携带的)-localstorage浏览器关闭之后不会销毁必须手动销毁,5M-sessionStorage浏览器关闭之后就销毁localstorage和sessionStorage不能跨域?不能跨域http是无状态的,可以通过cookie来制造状态,(浏览器设置cookie,服务端可以设置cookie)每...原创 2020-07-14 09:18:23 · 653 阅读 · 0 评论 -
你和大佬之间只差这个JS工具函数大全
为元素添加on方法Element.prototype.on = Element.prototype.addEventListener;NodeList.prototype.on = function (event, fn) {、 []['forEach'].call(this, function (el) { el.on(event, fn); }); return this;};为元素添加trigger方法Element.prototyp..原创 2020-06-30 11:16:26 · 212 阅读 · 0 评论