ECMAScript

深入理解对象的数据属性与访问器属性

半腔热情 提交于 2020-08-13 09:21:05
创建对象的方式有两种:第一种,通过new操作符后面跟Object构造函数,第二种,对象字面量方式。如下 var person = new Object(); person.name = 'Nicy' ; person.age = 21 ; person.sayName = function () { console.log( this .name); }; var person = { name: 'Nicy' , age: 21 , sayName: function () { console.log( this .name); } } 这两种方式创建出来的对象是一样的,有相同的属性和方法。这些属性内部都有描述其行为的属性描述符。 Object.defineProperty() 通过Object.defineProperty() 可以直接在对象上创建一个属性,也可以修改已有的属性。 Object.defineProperty(obj, prop, descriptor) 接收三个参数:   obj:属性所在的对象     prop:要访问的属性名   descriptor:描述符对象 描述符对象包含六个属性:configurable、enumerable、writable、value、get、set ,要修改属性的特性,必须使用Object.defineProperty()方法。

JavaScript基础知识

别等时光非礼了梦想. 提交于 2020-08-13 09:09:36
JavaScript基础知识 前言    其实我个人认为 JavaScript 是一种非常随便的语言,也是一门很神奇很强大的语言。    因为之前使用过一段时间的 JavaScript 并做了些学习笔记都是放在 word 上的显得十分杂乱,所以这次也是打算认认真真的重新填一下坑并且认真整理一下 JavaScript 笔记到博客园。    以前在群里聊 JavaScript 的时候会经常出现一张图,我认为这个很有意思,所以就放在这里做一个填坑目标吧。    我还是希望将整个的笔记好好整理一下,并且以一种文档格式进行书写,也方便后期查阅。 理论知识 语言介绍    JavaScript 官方名称是 ECMAScript 是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。    1995年2月Netscape的 布兰登.艾奇 开发了针对网景公司的 Netscape Navigator 浏览器的脚本语言 LiveScript 。之后Netscape与Sun公司联盟后 LiveScript 更名为 JavaScript 。    微软在 JavaScript 发布后为了抢占市场推出了 JavaScript 。为了让脚本语言规范不在混乱,根据 JavaScript 1.1 版本推出了 ECMA-262 的脚本语言标准。

转行学前端的第 39 天 : 了解 ECMAScript function ES6 参数改进

南楼画角 提交于 2020-08-13 08:01:13
我是小又又,住在武汉,做了两年新媒体,准备用 6 个月时间转行前端。 今日学习目标 昨天基于搜索来 function 箭头函数相关。今天主要是基于搜索来基础学习 ES6 中对于 function 的参数改进,又是适合学习的一天,加油,小又又!!!! 这边发现了一个很不错的总结网站~~~~,最近两天的一些内容都是来自这个网站 ECMAScript 6 入门 ,强势安利!!!! 函数参数的默认值 历史原因介绍 ES6 之前,不能直接为函数的参数指定 默认值 ,只能采用变通的方法。 function log ( x, y ) { y = y || 'World' ; console .log(x, y); } log( 'Hello' ) // Hello World log( 'Hello' , 'China' ) // Hello China log( 'Hello' , '' ) // Hello World 复制代码 上面代码检查函数 log 的参数 y 有没有赋值,如果没有,则指定默认值为 World 。 这种写法的缺点在于,如果参数 y 赋值了,但是对应的布尔值为 false ,则该赋值不起作用。就像上面代码的最后一行,参数 y 等于空字符,结果被改为 默认值 。 为了避免这个问题,通常需要先判断一下参数 y 是否被赋值,如果没有,再等于 默认值 。 if ( typeof

关于 JavaScript 字符串的一个小知识

亡梦爱人 提交于 2020-08-12 14:55:56
持续进步的同学都关注了 “ 1024译站 ” 这是1024译站的第 97 篇文章 说起字符串,我们再熟悉不过了。接触编程的第一个经典任务就是输出字符串: Hello, world 。但是你知道 JavaScript 字符串在计算机里是怎么表示的吗? 最简单直观但不太准确的的理解就是,字符串就是由英文字母、数字和标点符号等这些字符组成的序列。比如下面这个字符串就是由5个字母和一个感叹号组成的: const message = 'Hello!' ; 同时也可以看出该字符串的字符数是6: const message = 'Hello!' ; message .length; // => 6 如果字符串是由这些可见字符(也就是 127 个 ASCII 字符) 组成的,这样理解没有问题。但是,一旦碰到不常见的符号,比如一些表情字符😀, 😁, 😈,可能会得到意外的结果: const smile = '😀' ; smile.length; // => 2 是不是很奇怪?明明只有一个字符,长度怎么会是 2 呢?这是因为,JavaScript 字符串实际上是由编码单元构成的,而不是可见字符序列。 ECMA 262 规范里是这么描述 JavaScript 字符串的: String 类型是由零或多个 16 位无符号整数值组成的有序序列的集合。字符串类型通常用于表示运行中的 ECMAScript

2020/6/10 JavaScript高级程序设计 BOM

本小妞迷上赌 提交于 2020-08-12 08:11:52
BOM(浏览器对象模型):提供用于访问浏览器的对象。 8.1 window对象 window是BOM的核心对象,表示浏览器的一个实例。 JavaScript访问浏览器窗口的接口 ECMAScript规定的Global对象 8.1.1 全局作用域 全局变量会成为window的属性,但是定义全局变量和直接在window对象上定义属性是有差别的—— 全局变量不能通过delete删除,但window对象上定义的可以 。 这是因为使用var添加的window属性[[Configurable]]被设置为false(不可删除)。 访问未声明的变量会发生错误,但通过查询window对象,可以知道某个可能未声明的变量是否存在。 // 这里会抛出错误,因为oldValue未定义 var newValue = oldValue; // 这里不会抛出错误,因为这是一次属性查询 var newValue = window.oldValue; // newValue的值是undefined 8.1.2 窗口关系及框架 如果页面中包含框架,则 每个框架都拥有自己的window对象 ,并保存在frames集合中。在frames集合中可以通过 数值索引/框架名称 来访问相应的window对象。每个window对象都有一个 name属性 ,其中包含框架的名称。 PS1 :对于 最高层窗口 来说

JavaScript的历史由来及简介

早过忘川 提交于 2020-08-10 17:51:30
JavaScript的历史由来及简介 前言 这次写一篇对于JavaScript的简介,我们知道的编程语言有很多种,比如Java、C++、Python等等,每种编程语言都有其独具的特色,不论是语法格式还是表达形式,都能让每个程序员沉淀在知识的海洋里难以自拔。即每种编程语言都有无限的延展性,但如果我们考虑问题的时候追溯其根源,其实也不难发现每种编程语言都具有共同的初心,最直白的话就是人与计算机进行沟通的语言,在现实生活中,见什么人说什么话我们都很清楚,那在与计算机沟通的世界中,做什么事用什么编程语言沟通也是同样的道理,前提就是我们要了解这些编程语言,在你需要选择的时候做出正确的判断,这也正是我写此篇文章的意义。 JavaScript的历史由来 在1994年,当时的 网景公司 (Netscape)凭借 Navigator 这个浏览器成为了Web时代开启最著名的第一代的互联网公司。当时所用的第一版本的浏览器就是下图中的浏览器,相信有很多年轻朋友都没有见过这种浏览器。如果大家回想十年前或是十五年前,大家用的浏览器应该是 IE浏览器 ,那个时候的浏览器跟现在的比如说 谷歌浏览器 、 火狐浏览器 等相比而言,那就是天壤之别了。 像上图中这是最早版本的浏览器,整个浏览器都是静态的,也就是用 HTML 和 CSS 写的,并没有像今天的各种浏览器一样具有各种各样的动态效果了,比如像网页的图片轮播

web相关知识

牧云@^-^@ 提交于 2020-08-10 16:52:07
前端技术简介 ❖ 前端⼯程化 ➡ Node.js ➡ ES 5、ES 6 ➡ Webpack 前端和后端 ➡ 前端(front-end)和后端(back-end)是描述进程开始和结束的通用词汇。 ➡ 前端用于采集输入信息,后端进行处理。程序的界面样式、视觉呈现属于前端。 ➡ 传统上,一般认为MVC软件架构中的View即为前端,但近年来的发展,实际的View 层已远超越了View的概念,架构也演进为MVC、MVP、MVVM、MV*等,前端相关的 技术也飞速的发展和迭代。 NodeJS简介 ➡ Node.js是一个基于Chrome V8引擎的JavaScirpt运行环境(解释器),一般也称为服务 端JavaScript。 ➡ 浏览器中的JavaScript包括EcmaScript、BOM、DOM,Node.js中的JavaScript没有 BOM、DOM,主要功能是提供服务器级别的API操作(如文件读写、网络服务的构 建、网络通信、http服务器等)。 ➡ NodeJS的主要特性包括事件驱动、非阻塞I/O等。 ➡ npm是基于Node.js开发出来的包管理工具,npm是目前最大的开源库生态系统,绝 大多数js包都存放在npm上。 ➡ 中文社区http://nodejs.cn/ ❖ ES6重要特性 ➡ 关键字扩展:let、const等 ➡ 模版字符串: string ➡

JavaScript基础语法--乐字节Java

最后都变了- 提交于 2020-08-10 09:12:27
JavaScript基础语法 主要内容 JavaScript 简介 ​ JavaScript 是一种具有面向对象能力的、解释型的程序设计语言。更具体一点,它是基于对象和事件驱动并具有相对安全性的客户端脚本语言。它的主要目的是,验证发往服务器端的数据、增加 Web 互动、加强用户体验度等。 JavaScript 的组成 ​ ECMAScript定义的只是这门语言的基础,与Web浏览器没有依赖关系,而在基础语法上可以构建更完善的脚本语言。JavaScript的运行需要一定的环境,脱离了环境JavaScript代码是不能运行的,JavaScript只能够寄生在某个具体的环境中才能够工作。JavaScript运行环境一般都由宿主环境和执行期环境共同构成,其中宿主环境是由外壳程序生成的,如Web浏览器就是一个外壳程序,它提供了 一个可控制浏览器窗口的宿主环境。执行期环境则由嵌入到外壳程序中的JavaScript引擎(或称为JavaScript解释器)生成,在这个环境中 JavaScript能够生成内置静态对象,初始化执行环境等。 ​ Web浏览器自定义的DOM组件,以面向对象方式描述的文档模型。DOM定义了表示和修改 文档 所需的对象、这些对象的行为和属性以及这些对象之间的关系。DOM对象,是我们用传统的方法(javascript)获得的对象。DOM属于浏览器

js中对象的定义是指什么

老子叫甜甜 提交于 2020-08-10 05:29:57
主要内容--乐字节java直播课 事件 ​ 事件 (Event) 是 JavaScript 应用跳动的心脏 ,进行交互,使网页动起来。当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了。事件可能是用户在某些内容上的点击、鼠标经过某个特定元素或按下键盘上的某些按键。事件还可能是 Web 浏览器中发生的事情,比如说某个 Web 页面加载完成,或者是用户滚动窗口或改变窗口大小。 ​ 通过使用 JavaScript ,你可以监听特定事件的发生,并规定让某些事件发生以对这些事件做出响应。 作用 (1)验证用户输入的数据。 (2)增加页面的动感效果。 (3)增强用户的体验度 事件中的几个名词 事件源: 谁触发的事件 事件名: 触发了什么事件 事件监听: 谁管这个事情,谁监视? 事件处理:发生了怎么办 例如 闯红灯 事件源:车 ; 事件名: 闯红灯; 监听:摄像头、交警 ; 处理:扣分罚款 单击按钮 事件源:按钮; 事件名: 单击; 监听:窗口 ; 处理:执行函数 ​ 当我们用户在页面中进行的点击动作,鼠标移动的动作,网页页面加载完成的动作等,都可以称之为事件名称,即:click、mousemove、load 等都是事件名称,具体的执行代码处理,响应某个事件的函数。 <body onload="loadWindow();"></body> <script> function

在JavaScript中从字符串中删除所有非数字字符

冷暖自知 提交于 2020-08-10 02:27:47
问题: Consider a non-DOM scenario where you'd want to remove all non-numeric characters from a string using JavaScript/ECMAScript. 考虑一个非DOM场景,您希望使用JavaScript / ECMAScript从字符串中删除所有非数字字符。 Any characters that are in range 0 - 9 should be kept. 应保留 0 - 9 范围内的任何字符。 var myString = 'abc123.8<blah>'; //desired output is 1238 How would you achieve this in plain JavaScript? 你会如何在纯JavaScript中实现这一目标? Please remember this is a non-DOM scenario, so jQuery and other solutions involving browser and keypress events aren't suitable. 请记住这是一个非DOM场景,因此jQuery和其他涉及浏览器和按键事件的解决方案都不合适。 解决方案: 参考一: https://stackoom.com