前端
文章平均质量分 77
_Hanshin
这个作者很懒,什么都没留下…
展开
-
简单搞懂JS中的call、bind、apply 实现原理
/** * call * @param { any } context 参数1: 修改后的this指向 * @param {...any} args 参数2: 函数参数 * @returns 返回执行结果 */Function.prototype.call = function call (context, ...args) { // 如果 context 是 null 或者 undefined 时, 自动指向 window (规范中, 非严格模式) context == null ?原创 2021-05-08 16:43:12 · 172 阅读 · 0 评论 -
二、Webpack配置应用
二、Webpack配置应用1、多页应用// webpack.config.jsconst path = require('path');const HtmlWebpackPlugin = require('html-webpack-plugin');module.exports = { mode: 'development', // 多入口 entry: { page1: './src/index1.js', page2: './src/index2.js' },原创 2021-03-31 23:31:56 · 107 阅读 · 0 评论 -
一、Webpack基本配置及使用
一、Webpack基本配置及使用1、安装本地Webpackwebapck webpack-cli -D// -D 表示上线不需要打这个包// 初始化一下,记录安装的依赖yarn init -y// 5.2支持的npx语法可以直接执行webpack// 默认去找node_modules下面的bin文件里面的webpack.cmdnpx webpack2、 Webpack可以0配置打包工具 -> 输出后的结果(js模块)打包 -> 支持js模块化// 执行这行命令,原创 2021-03-30 00:02:21 · 117 阅读 · 0 评论 -
创建一个Vue指令,用于自定义格式列表的渲染中快捷键的使用
创建一个Vue 指令,用于自定义格式列表的渲染中快捷键的使用背景 业务场景中,列表渲染很常见,在PC或者外接键盘的情况下,对于快捷键的支持,能够给用户带来良好的体验效果。 在每个业务中去做键盘事件监听可以实现这样的效果,但是,如果这样的业务场景较多的时候,不可避免的会造成代码的重复使用。所以,我们采用引入指令的方式,简化业务代码中的书写。避免大量的重复操作。想要的效果一般针对列表的处理,我们一边是选择的时候回去使用快捷键,查看的时候也会用到,所以我们做如下的要求:可以默认选中一行,.原创 2021-01-05 20:33:33 · 267 阅读 · 0 评论 -
Taro中 alias 别名,在文件中引入提示:找不到模块“@/api”或其相应的类型声明
Taro中 alias 别名,在文件中引入提示:找不到模块“@/api”或其相应的类型声明在config路径下的 index.js 文件中,直接如下添加即可const config = { //... alias: { '@/assets': path.resolve(__dirname, '..', 'src/assets'), '@/api': path.resolve(__dirname, '..', 'src/api') } /原创 2020-12-10 15:51:36 · 10422 阅读 · 0 评论 -
JavaScript中基于lodash及jQuery实现对象的extend及浅拷贝、深拷贝
// 1、方法扩展// 2、基于浅比较和深比较实现对象的合并var extend = function extend (obj) { // 如果不使用obj形参,也可以使用arguments[0] // 是undefined或者null,或者类型检测不是一个对象,抛出一个异常 if (obj == null || typeof obj !== 'object') { throw new TypeError('obj must be an object') } var self原创 2020-11-22 20:51:56 · 280 阅读 · 2 评论 -
JavaScript如何实现 a == 1 && a == 2 && a == 3?
JavaScript如何实现 a == 1 && a == 2 && a == 3?今天来看一道面试题,题目如下:如何使 a == 1 && a == 2 && a == 3成立。分析:比较两个值是否相等有两种,一个是 “ == ” , 一个是 “ === ”,而这里使用的是 “ == ”===:绝对相等,左右两边值和类型都相等。(如 1 === ‘1’ 是不成立的)== :相等,左右两边类型不同,会默认先转换为相同的类型原创 2020-11-22 20:41:24 · 642 阅读 · 1 评论 -
JavaScript数据类型检测详解及jQuery中实现数据类型检测的封装代码分析
JavaScript数据类型检测JavaScript中创建一个值的两种方案1、字面量方式let a = 1;let obj = {};...2、构造函数方式不能 new Symbol 和 new BigInt,可以通过Object(Symbol()/BigInt()),其他基本类型(除null和undefined)也可以这样做let a = new Number(1)let obj = new Object()...对于基本数据类型,两种方式的结果不同字面量方式得到的是基原创 2020-11-21 19:23:44 · 145 阅读 · 1 评论 -
正则表达式(一)——基础常用
正则表达式regular expression : RegExp什么是正则表达式正则表达式用来处理字符串规则只能处理字符串是一个规则:可以验证字符串是否符合某个规则(test),也可以把字符串中符合规则的部分捕获到(exec / match …)let str = 'good good study, day day up!';// 正则就是用来制定规则let reg = /\d+/; // \d 代表0~9中的一个数字,+代表让其出现多次:是否包含数字reg.test(str)原创 2020-11-21 00:10:51 · 263 阅读 · 0 评论 -
JavaScript变量提升简单介易懂
变量提升一、什么是变量提升在javascript中,函数及变量的声明都将会提升到最顶部(这个过程操作可以认为是在代码编译之后、执行之前进行)注意:只是 var 和 function 才会被提升一)var 与 function 的变量提升例一// ***********************例一***********************console.log(a);var a = 10;console.log(a);// 打印结果如下:undefined10// 解析:/原创 2020-11-17 20:05:46 · 141 阅读 · 0 评论 -
JavaScript 数据类型转换详细解释以及parseInt等
数据类型转换一、其他数据类型 => Number类型1、特定转换为NumberNumber()parseInt()/parseFloat()2、隐式转换浏览器内部先转换为Number后进行运算处理isNaN()数学运算如 1+2,990 + 8特殊情况:加号两边都有内容,当加号一侧出现字符串时,此时就不是数学运算了,而是字符串拼接在处理 == 比较时,部分值需要转化为数字后再进行比较(下面会提到)…Number('') // => 0N原创 2020-11-09 23:56:50 · 822 阅读 · 1 评论