最新文章我对js隐式转换终于不用再靠_猜_了!
一、前言在项目开发或者面试中经常出现下面这种判断:
12345console.log({} - {});console.log([] - []);console.log([] + [1, 2]);console.log([] == ![]);console.log({} == {});
结果分别是:NaN、0、1,2、true、false
二、包装类包装类是我们理解隐式转化的基础工具,是理解隐式转化的根基。js 中包装类分为:Boolean()、Number()、String()。
Boolean()Boolean()只有两种值:true和false其中值为false的称为falsey或虚值,分别包括 0、null、undefined、false、’’,NaN;而值为true的称为truth,除了falsey其他的返回都是true
Number()Number()的处理就分为对 基础类型 的处理和 引用类型 的处理。
基础类型12345678console.log(Number(null)) // 0co ...
我是如何一步一步实现一个伪select功能的实现的?
最终效果大概效果就是这样子,点击某个范围内的元素有会有一个状态(这里是一个列表出现的效果),然后在点击非这个区域范围的话就会变成另外一个状态(列表消失)
🎈 曲折的过程开始将上面的效果再次解析就是:在 A 元素上,点击它本身是一种状态(比如更换背景色为蓝色),点击外部的又是另外一个状态(背景色变成红色)做法就可以在 A 元素直接绑定 click 事件,还要阻止冒泡(这里为什么需要阻止冒泡呢?
12345678910111213141516171819202122232425262728293031<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> ...
AI会就行了,我还要学正则表达式干嘛?
现在 AI 都那么强大了我还为什么需要去学习正则表达式这个烦人的东西呢?问 AI:打开浏览器 -> 输入 chat.xxx.com -> 登录 -> 输入问题 ->得到答案靠自己 🧠: 输入问题 -> 得到答案简单明了可以看出来对于一些简单的东西如果掌握了,会大大减少得到问题答案的 ⏱
下面说明的表达式是运行在 javascript 环境下的正则表达式只能处理字符串,懂了没,字符串!!!
推荐使用 vscode 插件,可以在线测试正则表达式的匹配字符串
编写12345//=>字面量创建方式(两个斜杠之间包起来的,都是用来描述规则的元字符)let reg1 = /\d+/;//=>构造函数模式创建 两个参数:元字符字符串,修饰符字符串let reg2 = new RegExp('\\d+');
组成
量词元字符
设置字符出现的次数
符号
含义
*
任意次(包括 0 次)
+
至少出现一次
?
0 次或 1 次
{n}
出现 n 次
{n,}
至少出现 n 次
{n,m}
出现了 n ...
Vue笔记[二]-路由篇
基本使用官方文档:vue-router
安装npm i vue-router,默认安装的是最新版本(只支持 Vue3,Vue2 需要指定版本vue-router@3)
使用步骤
创建路由器
注册路由
使用路由
编写路由组件
注意:
不断切换路由时,路由组件在重复地销毁和挂载,即重复地经过完整的生命周期
vue-router 插件会向 vm 和 vc 身上添加 $route(当前路由) 和 $router(全局路由器) 两个属性
创建路由器在 src 目录下新建router/index.js
使用new VueRouter()的方式来创建路由器实例
12345678910111213import VueRouter from 'vue-router';import Vue from 'vue';import routes from './routes';Vue.use(VueRouter); // 使用插件const router = new VueRouter({ // 配置 routes, // 路由配置规则 ...
用vue-cli创建第一个应用
可能涉及文档:
vue-cli
node.js
环境配置
node.js :12.22.12
npm:6.14.18
vue/cli:5.0.8
编译器: vscode
开始说明名称用 vscode 打开一个文件夹,在终端命令行输入 vue create [项目名称] 来进行项目的创建
vue 版本123456> vue create testVue CLI v5.0.8? Please pick a preset: (Use arrow keys)> Default ([Vue 3] babel, eslint) Default ([Vue 2] babel, eslint) Manually select features
其他配置剩下配置信息根据自己需求自行添加,也可以直接选择第一个或者第二个选项默认安装
运行等项目创建完成之后,在命令行输入npm run serve
123456789DONE Compiled successfully in 4136ms ...
Vue笔记[一]-开始
简介Vue一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。
构建用户名界面:在合适的时刻将数据应用到合适的位置
渐进式: Vue可以自底向上逐层的应用,即需要什么用什么,可以只用一个 vue 核心库,也可以装一堆插件库
Vue 特点:
组件化模式,提高代码复用率,让代码更好维护
声明式编码,无需直接操作 DOM,提高开发效率
响应性,Vue 会自动跟踪 JavaScript 状态并在其发生变化时响应式地更新 DOM
使用虚拟 DOM和优秀的Diff 算法,尽量复用 DOM 节点
引入与挂载引入的方式有两种,通过 cdn 或者本地文件引入
12<script src="https://cdn.chuckle.top/npm/vue@2.7.14/dist/vue.js"></script><script src="/js/vue.js" ...
前端表格数据的两种分页方式
环境配置
编译器:vscode
开发框架:vue3
ui 库:element-ui-plus
采用组件table12345678910111213141516171819202122232425262728293031323334353637383940414243<template> <el-table :data="tableData" stripe style="width: 100%"> <el-table-column prop="date" label="Date" width="180" /> <el-table-column prop="name" label="Name" width="180" /> <el-table-column prop="address" label="Ad ...
element-ui-plus组件英文改中文
今天在 vue3 的项目中使用到了 element-ui-plus,在调用组件的时候发现渲染出来的默认都是英文版,对于我来说主要还是中文为主(还是因为英语太烂了。
方法 1: 全局引入在main.js文件:
123456//怎么按需修改中文import ElementPlus from 'element-plus';import locale from 'element-plus/lib/locale/lang/zh-cn'; //需要新加的代码const app = createApp(App);app.use(ElementPlus, { locale }); //需要改变的地方,加入locale
方法 2:按需引入在某个组件中修改
12345678910111213141516171819202122<template> <el-pagination :locale="locale" background @size-change="handleSizeChan ...
【前端知识文档集】标准库
标准库包装类如果尝试着把原始类型(number、string、boolean)当做对象使用,JS 会自动将其转换为对应包装类的实例
Numberhttps://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number
API
含义
备注
Number.NaN
表示一个数学上并不存在的数字
可以直接书写为NaN
Number.isNaN()
判断传入的值是否是 NaN
可以直接书写为isNaN
Number.isInteger()
判断传入的值是否是整数
Number.parseInt()
把传入的值转换为整数形式返回
可以直接书写为parseInt()
Number.parseFloat()
把传入的值转换为小数形式返回
可以直接书写为parseFloat()
Number.prototype.toFixed()
将当前数字保留指定位数的小数返回
传入小数位数
Number.prototype.toString()
将当前数字转换为字符串返回
传入 ...
grid布局
属性介绍
grid-template-columns: 列宽
grid-template-rows:行宽
repeat():简化重复的值
auto-fill:自动填充
fr:可用空间的一等分
minmax():长度范围
间距
grid-row-gap:行间距
grid-column-gap:列间距
grip-gap:行间距 列间距
grid-row-gap: 10px 表示行间距是 10px,grid-column-gap: 20px 表示列间距是 20px。grid-gap: 10px 20px 实现的效果是一样的
grid-template-areas:定义区域
grid-area:容器名称,配合grid-template-areas进行空间布局
grid-auto-flow:自动布局,规定大小空间不足时会自动换行/列
先行后列:grid-auto-flow:row,配合grid-template-colums规定每列大小
先列后行:grid-auto-flow:column,配合grid-template-colums规定每行大小
grid-auto-flow: ...