JavaScript魔鬼课程
文章平均质量分 67
学习笔记666
这个作者很懒,什么都没留下…
展开
-
异形孵化之函数
JavaScript运行需要什么我们简单来理解一下,需要宿主。JS的标准是由ECMA来制定的,所以叫ECMAScript。但是运行呢?总不能在空气中运行吧,所以只要弄个解释器在以下这些玩意儿上,都能运行。浏览器、操作系统、硬件、其他(这些统称宿主)Object、Function、Array、String、Boolean、Number、Date、RegExp、Error...(这些对象可以理解为J原创 2016-12-06 09:51:16 · 580 阅读 · 0 评论 -
使用Proxy模拟PHP的__get魔术函数
在前面我们已经了解了”js中对象的继承”: http://blog.csdn.net/github_26672553/article/details/54890416 http://blog.csdn.net/github_26672553/article/details/54956265主要代码如下://基类var BaseNews = function bb() { if (thi原创 2017-03-10 17:15:03 · 638 阅读 · 0 评论 -
import/export的进一步学习
在我们上节课学习了import和export的语法。 并且我们知道很多新的语法,我们的浏览器还不兼容,并且node.js也不完全兼容(我们借助了babel这个工具)。我们写了一个BaseNews模块:export const BaseNews = function bb() {}const是定义常量,后面不能更改。定义了模块,在其他地方需要先引用才可以使用:import {BaseNews} fr原创 2017-03-21 10:15:42 · 1399 阅读 · 0 评论 -
使用node.js+babel提升我们的档次、import/export语法
1.nodejs https://nodejs.org/en/ 我们可以使用nodejs,在终端下解析执行我们的js代码 比如:index.jsconsole.log('hello js');在终端使用node执行 node index.js终端会输出:hello js2.在我们写php或者java时,都可以把功能拆分成一个个类或独立的函数库。 通过require或者import来引入调用。原创 2017-03-13 16:36:17 · 6332 阅读 · 0 评论 -
套路学习:模块化编程+简单工厂模式
通过babel+nodejs+es2015学习了『模块化编程』的一个基础。 其实在javascript中也有设计模式。我们来设计一个订单模块 订单号、下单人ID、订单商品数量、下单时间、子订单对象(一对多):商品ID、商品价格、商品数量Orders.js// 主订单const MainOrder = { OrderNo:"", OrderUser:0, OrderT原创 2017-04-05 10:13:23 · 475 阅读 · 0 评论 -
TypeScript速学领悟篇 - 配置和运行
回顾我们之前所学1、最基本的javascript面向对象 2、接触到了ecmascript 2015 3、接触了使用node.js+babel来“编译”一些目前浏览器还不兼容的语法 4、在实际开发中借助webpack等构建工具由于技术等发展日益加快,我们有必要随着技术等发展及时跟踪步伐。 我们需要学习TypeScript了。 https://tslang.cn/0、初始化cd 一个目录n原创 2017-04-14 11:52:09 · 2263 阅读 · 0 评论 -
typescript速学:函数、基本数据类型
文档地址: https://tslang.cn/docs/handbook/basic-types.html在前面我们已经学过了『箭头函数』,我们发现在函数的参数可以使用数据类型。let showMe = (name:string,age:number)=>{ return "我的名字是:"+name+",我的年龄是:"+age;}上面这个函数是2个参数,且在调用的时候必须传递2个参数。原创 2017-05-29 13:31:20 · 620 阅读 · 0 评论 -
typescript速学:新闻实体对象、接口
今天我们要来学一下『接口』 https://tslang.cn/docs/handbook/interfaces.html1、我们来设计一个新闻实体类;设计一个函数来添加新下面是传统的做法:let NewsEntity = { "title":"新闻标题", "content":"新闻内容"}let addNews = function (news) { console.原创 2017-05-31 11:16:18 · 1685 阅读 · 0 评论 -
typescript速学:类、模块化编程
为了学习类,我们设计一个案列 1、设计一个用户类User:包含用户姓名、年龄 2、设计一个用户操作类UserService:用来操作用户类的增删改查官方文档: https://tslang.cn/docs/handbook/classes.html新建User.ts,代码如下://可以定义一个接口//来限制User类的属性interface UserInterface{ userN原创 2017-06-07 10:53:15 · 870 阅读 · 0 评论 -
typescript+webpack+webpack-dev-server结合在网页中运行
今天我们要把typescript结合前端构建工具(webpack)来运行。前面我们的案列(User类),我们已经在终端下运行过(node.js环境下),没有问题。"use strict";Object.defineProperty(exports, "__esModule", { value: true });// 引入var User_1 = require("./User");var U原创 2017-06-07 15:13:36 · 4482 阅读 · 0 评论 -
对象继承训练(2):继承后可以调用父类方法
上节课(http://blog.csdn.net/github_26672553/article/details/54890416),我们做了一个js的简单的继承。所谓的继承1、js中并没有类似java或者php一样的类继承 2、仅仅是通过一些『模拟方法』使得看起来好像是继承。因此方法很多,大家可以百度一下。 3、今天我们要实现的是,怎么让子类可以调用父类的方法?回顾上节课我们的简单的『继承』原创 2017-02-09 21:21:27 · 1605 阅读 · 0 评论 -
prototype和开房:你会用才能理解它
有一些知识点我们就算知道概念也没用,因为你不会用。这节课我们来引入大家都觉得迷茫的知识点:prototype,概念也许大家都知道,但是怎么用呢?回顾上节课我们已经学了如何必须用new来实例化function 我们留了一个课后作业,要实现下面功能var God = new GodClass({"version":"1.0"});alert(God.version); //'1.0'在我们实例化G原创 2017-01-12 10:36:17 · 599 阅读 · 0 评论 -
天启之object的实战训练
在JavaScript中,Object可以接受所有的对象。var me = new Object("字符串");var me = new Object(123);var me = new Object(true);var me = new Object({"name":"zhangsan"});var me = new Object(function(){ this.name = "jac原创 2016-12-14 12:50:46 · 326 阅读 · 0 评论 -
天翻地覆:object+异步调用实战训练
前面我们弄了一个new对象,然后从对象里获取数据。 http://blog.csdn.net/github_26672553/article/details/53637525 其中getList()函数每次获取都会被调用。现在,我们给加入“数据缓存”的概念。保证getList只会调用一次(比如,第二次调用getOne()的时候不会再去调用getList)。在ECMAScript 5.1开始,Ob原创 2016-12-15 15:50:29 · 373 阅读 · 0 评论 -
object的“偷梁换柱”
今天我们来设计一个业务类 还是那个news类,为了规范和业务代码统一性,我们往往胡要求做一些约定,比如有这样一个news类:var news = { data(){ return {id:101, title:'新闻标题'}; },};// 然后我们可以这样访问alert(news.data().id);这个data()是强制规定的,是我们的一个规范。var原创 2016-12-26 12:03:44 · 454 阅读 · 0 评论 -
实现对象属性的"监控" - 修改数据后自动更新页面
index.js:var God = { version:'1.0', extends(name, obj){ // 调用初始化函数 this.init(); /* * 我们约定对象中必须有 data和methdos2个属性 * 并且data是函数,methods是对象 * */原创 2017-01-05 13:54:22 · 2900 阅读 · 0 评论 -
对象的"可枚举"到底有啥用?
可枚举属性有什么作用?用在什么场景下,什么业务下?var God = { extends(name, obj){ /* * 我们约定对象中必须有 data和methdos2个属性 * 并且data是函数,methods是对象 * */ if('data' in obj && 'methods' in obj &&原创 2016-12-30 15:06:07 · 1695 阅读 · 0 评论 -
修复在子对象中修改this.$global.version的问题
目前我们的代码结构: God(这是一个母对象)专门负责:1、加工传入的业务对象。2、把重要属性让业务对象可访问。3、把一些属性密封起来业务子对象,约定通用的data()方法和methods子对象。 可以有n个业务子对象。这样做的目的?让我们的业务对象具备较强的可编程性、可扩展性、规范性。前面我们完成了子对象中通过this.$global来访问母对象God中的属性,但是这其中还有一个问题,就是$g原创 2016-12-30 16:07:18 · 796 阅读 · 0 评论 -
反复训练之建立object的“外包装”
var news = { data(){ return {id:101, title:'新闻标题'}; }, methods:{ show(){ alert(this.id); } }};// 然后我们可以这样访问Object.assign(news.methods, news.data());原创 2016-12-26 13:20:18 · 347 阅读 · 0 评论 -
对象继承训练(1)
上节课我们已经了解了prototype的基本使用:http://blog.csdn.net/github_26672553/article/details/54375735。本节课,我们来完成对象的继承训练。上节课课后作业(训练prototype) var God = new GodClass({ version:’1.0’, }); 在这里我们执行alert(God.ve原创 2017-02-06 10:31:08 · 450 阅读 · 0 评论 -
如何必须用new来实例化function
我们知道使用function可以用new来实例化,那么为啥要用new?以及在代码中我们能否控制队友写代码时必须写new呢?回顾 - 前面我们做了这样的代码结构var God = { //...}; //这是母体,用来加工和扩展业务对象var news = {}; //这是业务对象。用来传递约定好的方法和参数给母体God.extends('news',news); //扩展方法如何必须用new原创 2017-01-11 09:30:58 · 2042 阅读 · 2 评论 -
typescript+webpack+react.js
前面以后了解了 typescript+webpack: http://blog.csdn.net/github_26672553/article/details/72899688怎么吧React和Webpack结合?官方文档也有介绍: https://tslang.cn/docs/handbook/react-&-webpack.html要学习React,就有必要学习JSX,官方文档地址: h原创 2017-07-17 14:23:58 · 1028 阅读 · 0 评论