js面向对象系列——基本数据类型

该系列是自己在参考大量资料之后,自己的学习笔记,也是自己所学的阶段性总结,首先,我的思路是从基本的数据类型开始

首先,我需要了解的重要重要工具 typeof:

概念:用来检测给定变量的类型

作用:

1 区分是不是原始值类型

var baseType = function (){
            console.log("String类型:"+typeof("cc"));
            console.log("Number类型"+typeof(12));
            console.log("Boolean类型"+typeof(true));
            console.log("Undefined类型"+typeof(un));
  }
结果:
2015-09-01 16:29:55.135VM838:3 String类型:string
2015-09-01 16:29:55.136VM838:4 Number类型number
2015-09-01 16:29:55.136VM838:5 Boolean类型boolean
2015-09-01 16:29:55.136VM838:6 Undefined类型undefined

2 区分是不是对象

var refType = function(){
           var oTp = {1:"1_val",2:"2_val"};
           var aTp = [1,"1"];
           console.log(typeof(oTp));
           console.log(typeof(aTp));
}
结果:
2015-09-01 16:25:25.439VM800:5 object
2015-09-01 16:25:25.439VM800:6 object

3 区分是不是函数

通过typeof检查引用类型(原生的引用类型,自定义的引用类型)的函数
var refType = function(){
  console.log(typeof(Array));
  console.log(typeof(Date));
  console.log(typeof(Object));
  console.log(typeof(Function));
}
结果:
2015-09-01 16:28:29.333VM824:3 function
2015-09-01 16:28:29.334VM824:4 function
2015-09-01 16:28:29.334VM824:5 function
2015-09-01 16:28:29.334VM824:6 function

甚至:
var refType = function(){
  console.log(typeof(Boolean));
  console.log(typeof(Number));
  console.log(typeof(String));
 }
结果:
2015-09-01 16:44:33.617VM2192:7 function
2015-09-01 16:44:33.617VM2192:8 function
2015-09-01 16:44:33.617VM2192:9 function

学习JS的时候曾总是提起,除了值类型,其他的一切都是对象,但是验证的时候为什么会出现Function这个东西?

时间: 2024-10-13 05:50:46

js面向对象系列——基本数据类型的相关文章

JS面向对象系列教程 — 对象的基本操作

面向对象概述 ? 面向对象(Object Oriented)简称OO,它是一种编程思维,用于指导我们如何应对各种复杂的开发场景. 这里说的对象(Object),意思就是事物,在面向对象的思维中,它将一切都看作是对象,并以对象为切入点去思考问题. 使用面向对象的思维去开发程序,我们首先思考的是这个系统中有哪些对象(事物),它们各自有什么属性(特征),又有什么方法(行为),这样一来,就可以把系统分解为一个一个的对象,然后对每个对象进行单独研究,以降低系统的整体复杂度. 学习面向对象,我们不仅要学习它

js面向对象系列——Function函数对象

Function到底是什么东西? 1. Function是最顶层的构造器,它构造了系统中所有的对象,包括Object(Object是最顶层的对象,但要明确的知道Object也是一个函数,也是有Function构成的),Array,Date等 2. 一切都是对象,所以理论上理解Function也是一个对象,我们可以称为函数对象 这里简单介绍一下另一个重要的工具:instanceof 作用:检验对象的类型 function TestObject(){} TestObject instanceof O

js面向对象系列——关系图

下面这张图就是结构图,可以尝试用显性的prototype和隐形的[[prototype]]来理解这个图: 如果理解不了那么就可以利用之前说的另一个工具:instanceof(它就是依赖原生链来实现) 例如:A InstantOf B 其实就是沿着实例对象的__proto__这条线来找,同时沿着函数对象的prototype这条线来找,如果两条线能找到同一个引用,即同一个对象,那么就返回true.如果找到终点还未重合,则返回false 以为他就是根据这个原理实现的,可以尝试模拟代码如下: Objec

js面向对象系列——显性prototype和隐形[[prototype]]

如果想要理解Function和Object之间的内部关系,必须引入另两个概念显性prototype和隐形[[prototype]]概念 1. prototype:每一个函数对象都有一个显示的prototype属性,它代表了对象的原型,更明确的说是代表了由函数对象(构造函数)所创建出来的对象的原型 2. [[prototype]]:每个实例对象都有一个名为[[Prototype]]的内部属性(控制台上可以__proto__),指向于它所对应的原型对象 函数对象: function Person()

拖拽系列二、利用JS面向对象OOP思想实现拖拽封装

接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到这里突然想起一句话“没有任何一个题目是彻底完成的.总还会有很多事情可做......” 我想这句话程序开发大概也适用吧,前端开发人员总是可以结合自己之前学到“拖拽”相关知识,不断扩展.完善.无穷无尽.......     利用匿名函数自执行实现封装 ;(function(){ //do somethi

js面向对象的系列

在面向对象语言中如java,C#如何定义一个对象,通常是定义一个类,然后在类中定义属性,然后通过new 关键字来实例化这个类,我们知道面向对象有三个特点,继承.多态和封装.那么问题来了,在javaScript中如何定义一个类?在javaScript中如何定义类的属性?如何继承?带着这些问题开始我们的js面向对象之旅吧. 在js中如何定义类? js中是没有类的概念的,但是我们通常会用一个函数定义成一个类.funtion class1(){ //类的成员定义 } 这里class1既是一个函数也是一个

详解Node.js API系列C/C++ Addons(3) 程序实例

http://blog.whattoc.com/2013/09/08/nodejs_api_addon_3/ 再续前文,前文介绍了node.js 的addon用法和google v8 引擎,下面,我们进入真正的编码,下面将会通过六个例子,学习node addon 范例,了解addon编程的特性 创建一个空项目 随机数模块 向模块传递参数 回调函数处理 线程处理 对象管理 创建一个空项目 vi modulename.cpp #include <node.h> void RegisterModul

JS组件系列——分享自己封装的Bootstrap树形组件:jqTree

前言:之前的一篇介绍了下如何封装自己的组件,这篇再次来体验下自己封装组件的乐趣.看过博主博客的园友应该记得之前分享过一篇树形菜单的使用JS组件系列——Bootstrap 树控件使用经验分享,这篇里面第一个Jquery Tree,只是用简单样式和js去实现了效果,没有给出一个系统的封装,这篇博主就来试试在此样式的基础上封装一个稍微完整点的树形组件. 一.组件效果预览 其实效果和之前的那个差不多,博主只是在之前的基础上加了一个选中的背景色. 全部收起 展开 全部展开 二.代码示例 其实效果很简单,重

js 面向对象的基本概念和基本使用方法

js 面向对象的基本概念和基本使用方法 -> js 是不是一个面向对象的语言? 不是:与传统面向对象的理论语言有矛盾.C#,Java. 是:js里面到处都是对象,数组,时间,正则- 和 DOM.也可以像传统面向对象的语言那样用 new 的方式创建对象 -> js是一个基于对象的多范式编程语言. 面向过程的方式 面向对象的方式 函数式 递归与链式 例: Jquery 链式编程 面向对象的概念 对象的定义:无序属性的集合,其属性可以包含基本值,对象或是函数 1. 面向:将脸朝向- -> 关注