• 首页

  • 分类

  • 归档

  • 标签

  • 开源

  • 关于
繁星 の 夜
繁星 の 夜

Ricky 泽阳

但盼風雨來 能留妳在此

04月
01
JavaScript

JS类型检测

发表于 2018-04-01 • 分类于 JavaScript • 阅读次数:
字数统计: 720 • 阅读时长 ≈ 4 分钟

类型

首先贴下ECMA定义的类型

基本数据类型:

  • Number(数字)
  • String(字符串)
  • Boolean(布尔)
  • Symbol(符号)(第六版新增)
  • Null(空)
  • Undefined(未定义)
阅读全文 »
04月
01
JavaScript

should.js 写法实现

发表于 2018-04-01 • 分类于 JavaScript • 阅读次数:
字数统计: 365 • 阅读时长 ≈ 2 分钟

关于 should.js

先上代码

1
2
3
4
5
6
7
8
var should = require('should');

var user = {
name: 'tj',
pets: ['tobi', 'loki', 'jane', 'bandit']
};

user.should.have.property('name', 'tj'); // true

看到这样的写法是不是很酷炫,反正我当时就是,我们来一步一步实现它。

原型链

首先user这个对象本身是没有should这个属性的,那就肯定是往原型链上找了,所以事先把这个属性挂载到Object.prototype上

1
2
3
4
5
6
7
8
9
10
11
// 1、
function tool(obj){
this._obj = obj;
}

// 2、
Object.defineProperty(Object.prototype,'tool',{
get: function(){
return new tool(this);
}
});
  • 1、先定义一个函数,将调用对象的this当做tool函数的内部对象传入
  • 2、在Object.prototype上定义一个名为为tool的属性,设置这个属性的get访问拦截返回通过构造函数实例化的tool

看看效果

1
2
3
4
5
6
7
8
9

const tool = require('./lib/defind');

const user = {
a: 1,
b: 'test'
};

console.log(user.tool); // 3、

阅读全文 »
04月
01
JavaScript

JS对象属性探究

发表于 2018-04-01 • 分类于 JavaScript • 阅读次数:
字数统计: 489 • 阅读时长 ≈ 2 分钟

对象

ECMAScript 将对象的属性分为数据属性和访问器属性,属性描述符有两种主要形式:数据描述符和存取描述符,
使用defineProperty可以为对象已有的属性添加特性描述:

1
2
3
4
5
6
7
8
9
10
var obj = {
test:"hello"
}
//对象已有的属性添加特性描述
Object.defineProperty(obj,"test",{
configurable:true | false, // 是否可以删除目标属性或是否可以再次修改属性的特性(writable, configurable, enumerable)
enumerable:true | false, // 是否可枚举
value:任意类型的值,
writable:true | false // 属性的值是否可以被重写
});

阅读全文 »
12月
01
JavaScript

变量声明之旅

发表于 2017-12-01 • 分类于 JavaScript • 阅读次数:
字数统计: 527 • 阅读时长 ≈ 2 分钟

var、let、const 定义变量

var 定义的变量允许变量提升(Hoisting),还涉及到 变量进行 LHS(Left Hand Side)查找

1
2
3
举个栗子:
console.log(x); // undefined
var x = 'var is up';

但是得注意一下,var声明的变量可以提升,但是如果是一个定义一个函数,函数表达式是不可以提升的,如下:

1
2
3
4
5
6
7
8
9
10
var x = func();
var func = function(){
return 'this is function';
}
// 相当于下面的代码:
var func;
var x = func();
func = function(){
return 'this is function';
}

阅读全文 »
12
Ricky 泽阳

!Ricky 泽阳

隱約雷鳴 陰霾天空 但盼風雨來 能留妳在此

14 日志
9 分类
Creative Commons

博客已萌萌哒运行(●'◡'●)ノ♥

© 2022 繁星 の 夜. 由 Hexo 强力驱动. Theme By Sagiri v0.0.4. 站点地图. xxxx.

Made with by Ricky 泽阳.