ECMAScript

必考知识点-JavaScript类型转换(讲原理)

 ̄綄美尐妖づ 提交于 2021-02-18 03:15:21
一、类型转换先说类型 类型转换指将一种类型转换为另一种类型,那我们首先来说说JavaScript中的类型。 1.1原始(Primitive)数据类型 Null Undefined Boolean String Number Symbol BigInt BigInt是一种新的数据类型,用于当整数值大于Number数据类型支持的范围时。这种数据类型允许我们安全地对大整数执行算术操作,表示高分辨率的时间戳,使用大整数id,等等,而不需要使用库。重要的是要记住,不能使用Number和BigInt操作数的混合执行算术运算,需要通过显式转换其中的一种类型。此外,出于兼容性原因,不允许在BigInt上使用一元加号(+)运算符。 1.2引用(Object)数据类型 javaScript中内置了很多对象。 Array Array ArrayBuffer AsyncFunction Atomics BigInt BigInt64Array BigUint64Array Boolean DataView Date Error EvalError Float32Array Float64Array Function Generator GeneratorFunction Infinity Int16Array Int32Array Int8Array InternalError Intl Intl

EsLint入门

余生长醉 提交于 2021-02-14 08:36:27
EsLint入门 介绍 官方地址:http://eslint.org/ EsLint帮助我们检查Javascript编程时的语法错误。比如:在Javascript应用中,你很难找到你漏泄的变量或者方法。EsLint能够帮助我们分析JS代码,找到bug并确保一定程度的JS语法书写的正确性。 EsLint是建立在Esprima(ECMAScript解析架构)的基础上的。Esprima支持ES5.1,本身也是用ECMAScript编写的,用于多用途分析。EsLint不但提供一些默认的规则(可扩展),也提供用户自定义规则来约束我们写的Javascript代码。 EsLint提供以下支持: ES6 AngularJS JSX Style检查 自定义错误和提示 EsLint提供以下几种校验: 语法错误校验 不重要或丢失的标点符号,如分号 没法运行到的代码块(使用过WebStorm的童鞋应该了解) 未被使用的参数提醒 漏掉的结束符,如} 确保样式的统一规则,如sass或者less 检查变量的命名 使用 一、安装 Npm install gulp-eslint –save-dev 在你的项目目录下,运行:eslint –init将会产生一个.eslintrc的文件,文件内容包含一些校验规则 { "rules": { "semi": ["error", "always"], "quotes": [

Es6简介

青春壹個敷衍的年華 提交于 2021-02-13 21:27:45
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 ECMAScript 和 JavaScript 的关系 一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系? 要讲清楚这个问题,需要回顾历史。1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版。 该标准从一开始就是针对 JavaScript 语言制定的,但是之所以不叫 JavaScript,有两个原因。一是商标,Java 是 Sun 公司的商标,根据授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,且 JavaScript 本身也已经被 Netscape 公司注册为商标。二是想体现这门语言的制定者是 ECMA,不是 Netscape,这样有利于保证这门语言的开放性和中立性。 因此,ECMAScript 和

石川es6课程---1-2、ES6简介

时光怂恿深爱的人放手 提交于 2021-02-13 20:50:55
石川es6课程---1-2、ES6简介 一、总结 一句话总结: 从ECMAScript的历史发展来看,太顺了的时候总会遇到一挫折,比如ecma4 1、ECMAScript 和 JavaScript关系? ECMA 是标准,JS 是实现 2、解决ie9兼容性问题的在线编译? 用browser.js/babel <! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < meta name ="viewport" content ="width=device-width, initial-scale=1.0" > < meta http-equiv ="X-UA-Compatible" content ="ie=edge" > < title > Document </ title > </ head > < body > < script charset ="utf-8" src ="https://cdnjs.cloudflare.com/ajax/libs/babel-core/6.1.19/browser.js" ></ script > < script type ="text/babel" > let a = 5 ; let b = 7 ; alert(a + b); </

Angular v8 发布!来看看有什么新功能[每日前端夜话0x7A]

旧城冷巷雨未停 提交于 2021-02-13 02:32:56
每日前端夜话 0x7A 每日前端夜话,陪你聊前端。 每天晚上18:00准时推送。 正文共:3332 字 预计阅读时间: 8 分钟 翻译:疯狂的技术宅 来源: jaxenter Angular Angular 8 终于来了,包括 Ivy 的预览、service worker 支持,差异化加载以及一些锦上添花的东西。 Manfred Steyer 解释了最新 Angular 版本中最重要的变化。 Angular 8 刚刚发布! 完全按照计划,没有任何意外:框架和 CLI 的更新可以通过 ng update 完成,其新功能是一个受欢迎的补充,符合“演化而不是革命”的座右铭。 在本文中,我将介绍 Angular 8 和 Angular CLI 8 的最重要的新功能。我在文中的例子可以在 GitHub 上找到。 先瞅一眼 Ivy Ivy 是 Angular 世界下一个望眼欲穿的大新闻,它是新的 Angular 编译器,也是新的渲染管道。Ivy 有可能产生相当小 bundle,它使渐进式编译更容易,也是 Angular 领域未来创新的基础。 由于 Angular 大量的底层部分已经为此进行了更改,因此 Angular 团队特别注意与以前的 Angular 版本的兼容性:在切换到 Ivy 之后,现有的程序应该能够像以前一样工作。在一切正常的前提下,能够得到明显更小的 bundles 应该就足够了

JavaScript(五)

我们两清 提交于 2021-02-12 10:04:07
循环语句 程序中进行有规律的重复性操作,需要用到循环语句。 for循环 for ( var i=0;i<len;i++ ) { ...... } while循环 var i=0 ; while (i<8 ){ ...... i ++ ; } 数组去重 var aList = [1,2,3,4,4,3,2,1,2,3,4,5,6,5,5,3,3,4,2,1 ]; var aList2 = []; for ( var i=0;i<aList.length;i++ ) { if (aList.indexOf(aList[i])== i) { aList2.push(aList[i]); } } alert(aList2); Javascript组成 1、ECMAscript javascript的语法(变量、函数、循环语句等语法) 2、DOM 文档对象模型 操作html和css的方法 3、BOM 浏览器对象模型 操作浏览器的一些方法 字符串处理方法 1、字符串合并操作:“ + ” 2、parseInt() 将数字字符串转化为整数 3、parseFloat() 将数字字符串转化为小数 4、split() 把一个字符串分隔成字符串组成的数组 5、charAt() 获取字符串中的某一个字符 6、indexOf() 查找字符串是否含有某字符 7、substring() 截取字符串 用法:

JavaScript 之有趣的函数(函数声明、调用、预解析、作用域)

自古美人都是妖i 提交于 2021-02-11 13:35:32
前言:“函数是对象,函数名是指针。”,函数名仅仅是指向函数的指针,与其他包含函数指针的变量没有什么区别,话句话说,一个函数可能有多个名字。 -1 . 函数声明 ,function+函数名称。调用方法:函数名(参数); function f1(x,y){ return x+ y; //函数体 } console.log(f1(2,3)); 这是最常见的指定函数名声明函数,在函数体内返回参数值,函数调用时才会输出结果。既然说到函数,那就免不了提一提它的预解析以及作用域。 此类方法定义的函数,在代码开始执行之前会通过解释器进行一个函数声明提前的过程,并将其添加到执行环境中, JavaScript 引擎会将其提升到代码树的顶端,率先执行,所以即使声明函数的代码在函数调用代码的后面,也能正确访问,上述过程就被称为函数的 预解析 。例如: console.log(sum); // 控制台输出函数源代码,证明函数可以被调用 console.log(sum(3,2)); // 5 function sum(x,y){ return x+ y; } 执行环境定义了变量或者函数有权访问其他数据,每个环境中都有一个与之关联的变量对象,环境中定义的变量和函数都保存在这个对象中,解析器在处理数据时就会使用这个对象。 - 2 . 匿名函数 ,即没有命名的函数,通过给将函数赋值给变量的形式声明函数

捋一捋JavaScript对象的理解

懵懂的女人 提交于 2021-02-11 08:45:35
理解对象 ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”严格来讲,这就相当于说对象是一组没有特定顺序的值。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。 我们可以把ECMAScript的对象想象成散列表:无非就是一组名值对,其中的值可以是数据或函数。 每个对象都是基于一个引用类型创建的,即创建自定义对象的最简单方式就是创建一个Object的实例,然后再为它添加属性和方法 早期的JavaScript开发人员使用这个模式创建新属性 //创建了一个名为person的对象,并为它添加了三个属性(name、age和job)和一个方法(sayName()) var person = new Object(); person.name = "jill"; person.age = 18; person.job = "software Engineer"; person.sayName = function () { alert(this.name); } 几年后,对象字面量成为创建这种对象的首选模式。 var person = { name:"jill", age:18, job:"software Engineer", sayName:function () { alert(this.name); } } 这些属性在创建时都带有一些特征值

JavaScript Array对象之ES5、ES6新增方法

百般思念 提交于 2021-02-10 08:15:43
上一篇我写了Array数组对象的一些基本方法,这次总结些关于ES5、ES6新增的数组对象的方法。 一、ES5新增数组方法(IE9+支持) 1.1索引方法 indexOf():返回要查找数值在数组中的索引值,从前往后查找,找不到返回-1 lastIndexOf():从后面往前找,但索引值不变。 语法格式: indexOf / lastIndexOf(要查找的项,查找起点索引)。 var a = [2, 9, 5,44,88,9,32 ]; console.log(a.indexOf( 2)); // 0 console.log(a.indexOf(7)); // -1 console.log(a.lastIndexOf(2)); // 0 console.log(a.lastIndexOf(7)); // -1 console.log(a.lastIndexOf(9,3)); // 1 console.log(a.lastIndexOf(9,5)); // 5 1.2数组迭代方法 ECMAScript 5 为数组定义了 5 个迭代方法。每个方法都接收两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象——影响 this 的值。   传入这些方法中的函数会接收三个参数:数组项的值、该项在数组中的位置、数组对象本身。 1.2.1 forEach(fn):用于替代for循环

【CSS】343- CSS Grid 网格布局入门

爱⌒轻易说出口 提交于 2021-02-10 08:10:31
CSS Grid(网格) 布局使我们能够比以往任何时候都可以更灵活构建和控制自定义网格。Grid(网格) 布局使我们能够将网页分成具有简单属性的行和列。 它还能使我们在不改变任何HTML的情况下,使用 CSS 来定位和调整网格内的每个元素。它允许 HTML 纯粹作为内容的容器。 HTML 结构不再受限于样式表现,比如不要为了实现某种布局而多次嵌套,现在这些都可以让 CSS 来完成。 定义一个网格 Grid(网格) 模块为 display 属性提供了一个新的值: grid 。当你将任何元素的 display 属性设置为 grid 时,那么这个元素就是一个 网格容器(grid container),它的所有直接子元素就成了 网格项(grid items)。 让我们创建创建一个 3×3 的布局,做一个 Tic-Tac-Toe (井字游戏) 棋盘。首先,我们将写一些 HTML: HTML 代码: <div class = "game-board" > < div class = "box" > </ div > <div class = "box" > </ div > <div class = "box" > </ div > <div class = "box" > </ div > <div class = "box" > </ div > <div class = "box" >