下面对知识点总结:

1.类型分类

a.原始类型:number, string, boolean, null, undefined

b.对象类型:除了原始类型都是(例如:object,array, function, new xxx[构造函数 class对象 Date, RegExp, Error])

备注:NAN,非数字,与任何值都不等,包括NAN

2.浮点数的计算差值

任何二进制浮点数的编程语言中,都会出现以下问题.因此我们在金融的计算业务中,使用整数计算(例如使用1分代替0.01元)

var a = 0.3 - 0.2;
var b = 0.2 - 0.1;
console.log( a == b); // false

3.对象

3.1 对象的遍历方式

for ....in  : 遍历自己可枚举的属性+ 继承的可枚举属性
Object.isOwnProperty(Object, property): 判断是否是自己的属性

3.2 对象的属性

对象上有两种属性:一般的属性和存取器属性。

var object = {
x: 10, // 一般属性
get y() { return 3*this.x},
set y(num) { this.x = num + this.x;}
}; object.y // 30 object.y = 20; // x = 30; object.y // 120

3.3 属性的特性: 值,可写,可枚举,可配置  || 存取器属性:读取(get), 写入(set), 可枚举,可配置

例如例子,复制属性的特性

Object.defineProperty(Object.prototype,
'extend',
{
writable: true,
enumerable: false,
configurable: true,
value: function(o) {
var names = Object.getOwnPropertyNames(o);
for( var i = 0; i < names.length; i ++) {
console.log(name[i]);
if(names[i] in this) {
continue;
}
else {
Object.defineProperty(this, names[i], Object.getOwnPropertyDescriptor(o, names[i]))
}
} }
}
) var a = {x:1};
var b ={y: 2};
a.extend(b); //{x:1,y: 2}

3.4 创建对象

1.字面量创建
var object = {a: 1}; // prototype: Object.prototype
Object.prototype.isPrototypeOf(object); // true
2. new 方式创建
function a() {}
var object = new a(); // prototype: a.prototype
object.__prop__ == a.prototype; // true a.prototype
a.prototype.isPrototypeOf(object); // true
3.Object.create()
var object = Object.create({y: 1}); // prototype: Object.prototype:
Object.prototype.isPrototypeOf(obejct); // true // Object.prototype: 就是Object的构造函数
// a.prototype: 就是a的构造函数

3.5 对象的三个属性

a.prototype

b.class 类属性

一般是取对象的toString()方法的第8个到倒数第二个位置的字符串
function A() {}
console.log(A.toString().substring(8, -1)); // Function 如果toString方法被重写,就不可以通过这种方式完成,可以通过以下方式:
function classOf(o) {
if(o === null ) { return 'null'};
if(o === undefined) { return 'undefined'}
return Object.prototype.toString.call(o).slice(8,-1)
}
function A() {}
classOf(A) // Function

c.可拓展性

表示对象是否可以添加新的属性。 

Object.isExtensible(): 判断是否可拓展
Object.preventExtensions(obj); // 设置不可拓展 // 与上同理,但是可以将属性设置为不可配
Object.isSealed()
Object.seal(obj) //冻结, 更严格锁定对象,不仅可以设置不可拓展和将属性设置为不可配,可以将所有数据设置为只读(存取器属性不受影响)
Object.freeze()
Object.isFrozen()

  

[06] JavaScript 类型的更多相关文章

  1. 前端06 /JavaScript之BOM、DOM

    前端06 /JavaScript 目录 前端06 /JavaScript 昨日内容回顾 js的引入 js的编程要求 变量 输入输出 基础数据类型 number string boolean null ...

  2. javascript类型与类型检测

    1.javascript类型: 注:包装对象:如"hello".length实际为js为我们隐式创建了一个String临时对象,去调用该对象的length属性,调用过后再将该临时对 ...

  3. javascript类型注意事项

    以下是javascript类型的注意事项: null:表示尚未存在的对象,注意,尽管尚未存在,也是个对象啊,所以用typeof检测一个null值变量的结果是Object:不过,为了便于写if语句,在j ...

  4. 谈谈JavaScript类型检测

      javascript内置的类型检测机制并非完全可靠.比如typeof操作符,并不能准确的判断数据是哪个类型,比如:数组和对象就不能通过typeof来区分. typeof [] ==="o ...

  5. Javascript类型检测

    原地址 http://www.cnblogs.com/fool/archive/2010/10/07/javascrpt.html 开门见山,我们先来看一下代码: var is = function ...

  6. JavaScript 类型浅解

    对于JavaScript 类型,可简单地概括为:相对于强类型语言来说,它是弱(松散)类型的语言:有基本类型和引用类型,他们是区别是一个有固定空间存在于栈内存中,一个没有固定空间保存在堆内存中并且在栈内 ...

  7. JavaScript类型和语法

    JavaScript类型和语法 一.类型 1.内置类型(null.undefined.boolean.number.string.object.symbol(es6中新增))(除对象之外,其它统称为基 ...

  8. 12.06 JavaScript

    任务 掌握JavaScript基础知识,能够使用JavaScript编写一些复杂度不大的交互功能. 任务: JavaScript基础 做完任务一的时候深深地感觉到自己的基础非常的薄弱,在这里再次感谢一 ...

  9. JavaScript权威设计--JavaScript类型,值,变量(简要学习笔记三)

    1.负号是一元求反运算 如果直接给数字直接量前面添加负号可以得到他们的负值     2.JavaScript中的运算超出了最大能表示的值不会报错,会显示Infinity. 超出最小也不报错,会显示-I ...

随机推荐

  1. 最小费用最大流模板 洛谷P3381

    题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表 ...

  2. CSS3不一样的下拉选择框

    本例中包含两个下拉选择框的动画示例,本例中并未使用select标签.本例中第一个案例也可用于标题.导航栏等位置. 案例一: html布局 <div class="content&quo ...

  3. P1794 装备运输_NOI导刊2010提高(04)

    P1794 装备运输_NOI导刊2010提高(04) 题目描述 德国放松对英国的进攻后,把矛头指向了东边——苏联.1943年初,东线的战斗进行到白热化阶段.据可靠情报,90余万德国军队在库尔斯克准备发 ...

  4. 三张照片解决--win10系统的edge浏览器设置为浏览器IE8,IE7,IE9---完美解决 费元星

      主要思想:         第二种方法:     参考文档: 1.可以在系统盘的C:\Program Files\Internet Explorer中找到iexplore.exe,然后将其发送到桌 ...

  5. PHP 头像上传

    嘻嘻,自从圣诞节过后,就一直懒散,这几天也因为是太过于繁忙的原因,感觉好久都没有出来冒冒泡,诶... 为了生活一直在奋斗,作为一名前端开发工程师,我现在越来越迷茫了,都不知道现在自己到底算什么了? 会 ...

  6. MySQL☞where与like

    1.无条件查询语句(查询表中所有数据) select * from 表名 2.查询某些列的数据(指定列) select 列名1,列名2,列名3 from 表名 3.条件查询语句 select 列名1, ...

  7. centos7使用Gogs搭建Git服务器

    一.初次接触Gogs,记录一下搭建过程 二.平台环境 Linux: CentOS7.5.1804 MySQL: 5.6.35 安装步骤: linux服务器新建git用户: 下载.解压gogs安装包: ...

  8. 为什么mysqld启动报错

    在一台ubuntu测试机器上启动一个mysql实例,本来应该是一件很简单的事情, 启动的时候却报错了:   mysqld_safe --defaults-file=/etc/mysql/my3307. ...

  9. MySQL初识2

    用python调用mysql的一些方法总结: 1.编码声明: # encoding: UTF-8#!/usr/bin/python 在开头处进行声明,避免出现输入中文时,提示声明错误(当然输入中文出现 ...

  10. poj3026(bfs+prim)最小生成树

    The Borg is an immensely powerful race of enhanced humanoids from the delta quadrant of the galaxy. ...