大家好,我是 CUGGZ。 JavaScript 是一门弱类型语言,它对类型是弱校验,正因为这个特点,所以才有了TypeScript这个强类型语言系统的出现,来弥补类型检查的短板。TypeScript在实现类型强校验的同时,还要满足 JavaScript 灵活的特点,所以就有了类型兼容性这个概念。了解类型兼容性可以避免在实际的开发中出现一些低级错误。下面就来看看类型兼容性的概念和分类。 1、类型兼容性的概念所谓的类型兼容性 用于确定一个类型是否能赋值给其他类型 。蓝狮官网TypeScript中的类型兼容性是 基于结构类型 的,结构类型是一种只使 ...
蓝狮官网11个 ES2022(ES13)中惊人的 JavaScript 新特性
与许多其他编程语言一样,JavaScript 也在不断发展,每年,蓝狮注册登陆该语言都会通过新功能变得更强大,让开发人员编写更具表现力和简洁的代码。 让我们探索 ECMAScript 2022 (ES13) 中添加的最新功能,并查看它们的使用示例以便我们更好地理解它们。 1、类字段声明在 ES13 之前,类字段只能在构造函数中声明,与许多其他语言不同,我们不能在类的最外层范围内声明或定义它们。 class Car {constructor() {this.color = ‘blue’;this.age = 2;}}const car = new Car();console.log(car.color); // blueconsole ...
蓝狮官网React报错之Objects are not valid as a React child
总览当我们尝试在JSX代码中,直接渲染对象或者数组时,蓝狮注册登陆会产生 “Objects are not valid as a react child” 错误。为了解决该错误,在JSX代码中,使用 map() 方法来渲染数组或者访问对象的属性。 下面是错误如何发生的示例。 export default function App() {const employees = [{id: 1, name: ‘Alice’, country: ‘Austria’},{id: 2, name: ‘Bob’, country: ‘Belgium’},{id: 3, name: ‘Carl’, country: ‘Canada’},]; c ...
蓝狮官网SASS 运算 (Operations)符的基本使用
sass 运算符虽然没有像那些编程语言那么强大,但为了更灵活的输出css,也增强了一些运算符的功能,例如赋值运算符、等号操作符、比较运算符、逻辑运算符、字符串运算符…等等,接下来就来详细介绍下这些运算符的基本使用 赋值运算符赋值运算符就是把一个值赋值给一个变量,通过冒号(:)蓝狮官网的方式进行承接(很多编程语言是=),例如: $font-size:16px;也可以把一个变量赋值给另一个变量 $font-size:16px;$h3:$font-size;赋值的变量必须先有值 等号操作符等号操作符用于比较两个表达式的值是否相等,蓝狮注册登陆所 ...
蓝狮官网js删除字符串最后一个字符方法总汇
需求:去掉js字符串末尾的标点符号,比如原字符串: fly63.com!目标字符串: fly63.com 解决方案:方法一:str.slice(0,str.length-1);方法二:str = str.substr(0, str.length – 1);方法三:str = str.substring(0, str.length – 1);方法四:str = str.substring(0, str.lastIndexOf(‘!’));lastIndexOf的结果是该字符的下标。下标从0开始。 方案说明:方式一:stringObject.slice(start,end)start : 要抽取的片断的起始下标。如果是负数,蓝狮官网则该参数规定的是从字符串的尾部开始算起的 ...
蓝狮官网React报错之map() is not a function
总览当我们对一个不是数组的值调用 map() 方法时,就会产生 “TypeError: map is not a function” 错误。为了解决该错误,请将你调用 map() 方法的值记录在 console.log 上,蓝狮注册登陆并确保只对有效的数组调用 map 。 这里有个示例来展示错误是如何发生的。 const App = () => {const obj = {}; // :no_entry:️ Uncaught TypeError: map is not a function return ( {obj.map(element => { return {element} ; })});}; export default App;我们在一个对象上调用 Array.map( ...
蓝狮官网sass @extend(继承)指令详解
所有警告框的基本样式(风格、字体大小、内边距、边框等…) ,蓝狮注册登陆因为我们通常会定义一个通用alert样式,类似于这样的 .alert{padding: 15px;margin-bottom: 20px;border: 1px solid transparent;border-radius: 4px;font-size: 12px;}然后定义不同警告框单独风格: .alert-info{color: #31708f;background-color: #d9edf7;border-color: #bce8f1;} .alert-success{color: #3c763d;background-color: #dff0d8;border-color: #d6e9c6;} .alert-warning{color: #8a6d3b;background-color: #fcf8e3;border-col ...
蓝狮官网type=module你了解,但 type=importmap你知道吗
当ES模块第一次在ECMAScript 2015中被引入,作为在JavaScript中标准化模块系统的一种方式时,它是通过在import语句中指定相对或绝对路径来实现的。 import dayjs from “https://cdn.skypack.dev/dayjs@1.10.7”; // ES modules console.log(dayjs(“2019-01-25”).format(“YYYY-MM-DDTHH:mm:ssZ[Z]”));这与模块在其他通用模块系统中的工作方式略有不同,例如CommonJS,以及在使用webpack这样的模块捆绑器时,使用的是更简单的语法。 const dayjs = require(‘dayjs’) // C ...
蓝狮官网6 个意想不到的 JavaScript 问题
作为前端开发工程师,JavaScript 是我们的主要开发语言,它本身语法比较简单,并且生态系统也非常完善,在社区的影响力越来越大。 在我们使用过程中,经常会遇到各种奇怪的问题,蓝狮注册登陆让我们经常摸不着头脑。 本文灵感来自wtfjs,整理了 6 个比较常见并且很有意思的问题。 奇怪的 try..catch:question:问题 下面代码执行后将返回什么? 2 还是 3 ? (() => {try {return 2;} finally {return 3;}})();:bulb:解答 答案是 3 ,这是为什么呢?这是因为在 try…catch…finally 语句中,无论是否抛出异常 final ...
蓝狮官网前端性能优化之控制请求并发数
在我们平时开发中,经常会遇到页面数据初始化时,频繁调同一个接口的情况。比如echarts项目中,一个页面可能会有几十张图表,如果一个接口返回所有图表数据的话,会造成用户过长的等待时间,再者过多图表同时渲染,也会给页面增加压力,造成卡顿的现象。 我们通常会让每个图表单独调一个接口,入参不同,这样更有利于页面快速渲染图表,单个图表请求到数据,立即渲染,不需要等待其他图表。可理想很丰满,现实很骨感,当服务器配置过低,或者后端代码性能较弱,会难以处理这些并发请求,接口调用越多,蓝狮注册登陆等待处理的 ...