typeof   检测给定变量的数据类型,通过typeof来区分函数和其它对象
 
var message = 'some string';
console.log(typeof(message));     // "string"
 
console.log(typeof(null));   // "Object" 特殊的返回值,因为null被认为是一个空的对象引用。
 
 
注意:
  • 尚未声明过的变量,只能进行一项操作,就是使用typeof检测它的数据类型
 
 
Undefined    它只是一个值,值是undefined. 
             场景:使用var 声明变量,但没有赋值(没有初始化)时,这个变量会返回 undefined.
             Undefined主要目的是用于比较,是为了正式区分空对象指针与未经过初始化的变量,我理解为,是为了区分变量的返回值是空对象null还是undefined
 
当声明变量未赋值时,这个变量与undefined是等价的
var message;
console.log(message == undefined);   //true
 
无论什么情况下,都不要把一个变量的值,设为undefined
 
 
 
注意:
  • 对未赋值的变量与未声明的变量,执行typeof时,均返回 undefined;
  • 在实际操作中,只需要知道一点,使用typeof检测变量时,如果返回 undefined ,我们就会知道,这个变量没有被赋值,就是没有被初始化;
 
 
null     它只有一个值,是第二个只有一个值的数据类型,它的值是 null。
         它表示一个空的对象指针,使用typeof检测时会返回 “Object”.
 
var message = null;
console.log(typeof(message));   //  "Object"
 
如果定义的变量,将来用于保存对象,那么最好将该变量初始化为null,因为null是一个空对象.如果这个变量还没有真正的保存对象,那么这个变量的值就应该是null,而不是其它的数据类型
 
 
Number     数据类型  它会值可以保存为  +0  或  -0  , +0  = -0 它们是相等的。
           可以保存为整数与浮点数。
           NaN Not a Number  这个值是表示本来要表示数值的操作数未返回数据的情况
任何涉及NaN的操作都会返回NaN;NaN与任何值都不相等,它与任何值比较都为false;
 
  • 方法:isNaN(param) 只接收一个参数,为了判断这个参数是否可以转换为数值 ,所有不能转换为数值的参数均返回false
           
什么叫浮点数? 就是该数值必须包含一个小数点,而且小数点后面必须至少有一位数字。保存浮点数的内容空间是保存整数的 2倍 ,因此,只要遇到浮点数,我们就要把它转变为整数。
将浮点数转换为整数的常用方法是:e表示法 =》 e前面的数值 * 10
  • 方法: Math.round(数值)  接收一个数值参数,目的是把不同的数四舍五入至最接近的整数
         document.write(Math.round(0.6));    //1
         document.write(Math.round(12.9));   //13
         document.write(Math.round(0.4));    //0
 
           数值转换  可以把非数值转换为数值 = 一元加操作
 
  • 方法 a : Number()  转型函数,可以用于任何数据类型
  1. true => 1
  2. false => 0
  3. null => 0
  4. undefined => NaN
  5. "" => 0 ;"123" => 123; "0123" => 123; "holle wrold" => NaN;
  • 方法 b : parseInt(字符串, 基数)  [pa:z] 参数有2个  专门用于把字符串转成数值。基数:多少进制,无论什么情况下,都要写明要转换成什么进制的基数,默认十进制,它的基数就是10
          var num = parseInt("10",2);   //2
          var num = parseInt("10",8);   //8
          var num = parseInt("10",10);  //10
          var num = parseInt("22.5");   //22
  • 方法 c : parseFloat(字符串)             参数只有一个    专门用于把字符串转成数值,它只能解析十进制值,因此,它的参数只有一个,没有基数
           var num = parseFloat("22.34.5");    //22.34
           var num = parseFloat("0908.5");     //908.5
           var num = parseFloat("1234red");    //1234
           var num = parserFloat("22.5");      //22.5 
 
 
 
string    字符串
 
          转义字符:用于不可打印的特殊字符,通常用于表示一些功能:
          \n   换行;   \t   制表;   \b   退格;    \r   回车;    \\斜杆
 
          转换字符串: 
  • 方法1:  toString(基数)   没有参数,但是有基数,要输出什么进制的值,改变基数即可。这个方法会通过基数改变输出的值。默认会输出基数为10的字符串。
          var num = 10;
          num.toString(2);    //转换为二进制字符串
          num.toString(8);    //转换为八进制字符串
          ... ...
    • 方法2: string(value)   转型函数,能够将任意的值转为字符串,没有基数。
     
 
 
Object    对象
 
var Obj = new Object();
 
 
操作符
 
~   非        返回数值的反码;
&   与        只有两个条件满足为true,才是true;只要有一个条件为false,就全部是false;
|   或        只有一个条件为true,就是true;
<<  左移      将数值的所有位向左移动指定的位数;
>>  右移      将数值的所有位向右移动指定的位数;
 
 
!   求反      无论这个值是什么类型,都会返回一个布尔值;
!!            第一个 !  是返回一个布尔值;第二个 ! 是对返回的布尔值求反;
               !false  //true;
               !"red"  //false,非空字符串为false;       !!"red"      //true
               !0      //true;                          !!0          //false
               !NaN    //true;                         !!NaN         //false
               !""     //true;                         !!""          //false
 
&&  逻辑与    如果第一个条件为true,还会对第二个条件进行求值;
              如果第一个条件为false,就直接跳出来了,不会对第二个条件进行求值;
 
||  逻辑或    如果第一个条件为true,就不会对第二个条件进行求值;
 
==  相等,则为true
!=  不相等,则为true
 
nuu == undefined     NaN != NaN     false == 0    true == 1     "5"  ==  5
 
a ? b : c   条件操作
 
a 为条件  b c 分别指不同的值;当条件满足时,值为b;当条件不满足时,值为c
 
=   赋值
,   逗号,一次声明多个变量,一次执行多条语句
 
var num = 1 , num2 = 2 , num3 = 3 , ...
 
 
 
语句  (使用while循环做不到的同样使用for循环也做不到)
 
if 语句                 条件判断                                if(条件){执行}
 
do-while 语句           先执行一次再根据条件判断                 do {执行} while {条件}
 
while 语句              执行前,先根据条件判断                   while (条件){执行}  条件的初始化变量,在外部
 
for 语句                执行前,先根据条件判断                   for(条件){执行}     条件的初始化变量,在内部
 
for-in 语句             要迭代的属性精准到一个对象或数组中        for ( 属性 in 对象 ){执行}
 
label 语句              添加标签                                 标签名 : for(){}
 
break 语句              立即退出循环
 
continue 语句           立即退出循环,退出后,会从循环的顶部继续执行
 
switch 语句             流控制,与break搭配使用                  switch(条件){case:....break;}
 
with 语句               将代码的作用域设置到一个特定对象中        with(共同的对象){执行}
          
                        var num = location.subString(1);
                        var num2 = location.hostName;
                        var num3 = location.href;
 
                        上面的代码,都包含有一个location对象,使用with语句:
     
                         with (location){
                              var num = subString(1);
                              var num2 = hostName;
                              var num3 = href;
                         }
 

javascript 红宝书笔记之数据类型的更多相关文章

  1. javascript 红宝书笔记之函数、变量、参数、作用域

    ECMAScript 不介意传进来多少个参数,也不介意传进来的参数类型.     理解参数:      命名的参数只提供便利,不是必需的.     ECMAScript 的变量包含两种不同的数据类型的 ...

  2. javascript 红宝书笔记之操作日期

    创建当日 日期对象   调用Date的构造函数而不传递参数的情况下,新创建的对象默认获取当前的日期和时间.   var now = new Date();   创建特定的日期和时间对象   Date. ...

  3. javascript 红宝书笔记之如何使用对象 如何操作数组

    对象定义  ===  引用类型,描述的是一类对象所具有的属性和方法     新对象的创建 方法     new + 构造函数       var person = new Object(); 对象字面 ...

  4. JS红宝书笔记——第一章 JavaScript简介

    1.JavaScript简史 Netscape公司决定开发一种客户端语言用来处理浏览器端简单的表单验证. Netscape公司派布兰登·艾奇(BrendanEich)为计划于1995年2月发布的Net ...

  5. 第5章 引用类型---JS红宝书书摘系列笔记

    在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,描述的是一类对象所具有的属性和方法.而对象是某个特定引用类型的实例. 一.Object类型 可以通过Object构造函数创 ...

  6. 【转载】关于在vs2013中配置opengl红宝书第八版环境

     本文为转载 原文地址 http://blog.csdn.net/qq821869798/article/details/45247241 本人刚开始学习opengl,买了一本opengl红宝书第八版 ...

  7. 从今日起,我会把OpenGL红宝书上的例子用完整的代码形式写在我的博客中,

    1.使用教程:OpenGL红宝书第8版 2.使用的库工具:GLEW和GLFW 3.使用的IDE:vs2012 4.说说目的:完整的看一遍OpenGL,加深印象并且熟练掌握运用OpenGL 5.欢迎有相 ...

  8. OpenGl编程指南第7版(红宝书)环境配制

    环境 OS:win7 旗舰版SP1 64位 编译器: VS 2013 express 的cl 软件 glut. 在这个页面https://www.opengl.org/resources/librar ...

  9. [转] VS2015中跑OpenGL红宝书第八版的第一章示例代码,运行

    Ori Article Link OpenGL的东西快忘光了,把角落的第八版红宝书拿出来复习一下 从书中的地址下了个示例代码结果新系统(Win10+VS2015)各种跑不起来,懊恼之后在网上疯狂搜索资 ...

随机推荐

  1. Color国际青年公寓

    Color国际青年公寓介绍.md-/Users/zjh/Documents html{font-family: sans-serif;-ms-text-size-adjust: 100%;-webki ...

  2. 北理工c语言期末考试

    1 给定一个区间,输出其中前半部分数字之和等于后半部分数字之和的数,没有则输出No output.(15分) 题目内容: 给定一个区间,输出其中前半部分数字之和等于后半部分数字之和的数,没有则输出No ...

  3. 网格最短路径算法(Dijkstra & Fast Marching)

    Dijkstra算法是计算图中节点之间最短路径的经典算法,网上关于Dijkstra算法原理介绍比较多,这里不再多讲.值得一提的是,当图中节点之间的权重都为1时,Dijkstra算法就变化为一般意义上的 ...

  4. POJ3255Roadblocks[次短路]

    Roadblocks Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 12697   Accepted: 4491 Descr ...

  5. JAVA单例

    单例模式: 1 public class Person{ 2 public static Person per//定义一个静态变量,用来储存当前类的对象 3 private Person()//构造方 ...

  6. [转]MVC整合Ajax

    MVC教程第五篇:MVC整合Ajax   2010-02-01 作者:张洋 来源:张洋的BLOG   摘要 本文将从完成“输入数据验证”这个功能出发,逐渐展开ASP.NET MVC与Ajax结合的方法 ...

  7. Zygote进程【3】——SystemServer的诞生

    在ZygoteInit的main()方法中做了几件大事,其中一件便是启动Systemserver进程,代码如下: @/frameworks/base/core/Java/com/Android/int ...

  8. HTML 学习笔记(列表)

    HTML 列表 html中列表使用标签<ul>和 <ol>来实现,不同的行用标签<li>来实现 <li>中包含的就是列表每行的内容.列表包含有序列表&l ...

  9. History 对象

    History 对象 History 对象包含用户(在浏览器窗口中)访问过的 URL. History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问. 注 ...

  10. mongodb.conf配置文件详解

    mongod --config /etc/mongodb.conf 配置如下:verbose:日志信息冗余.默认false.提高内部报告标准输出或记录到logpath配置的日志文件中.要启用verbo ...