进制转换:http://www.topthink.com/topic/504.html

javascript的数据类型分为基本数据类型和非基本数据类型(对象)

一、基本数据类型:

包括以下部分:数字、字符串、布尔值、undefined、null,除此之外的均为对象

1、数字:浮点数、整数;

八进制:0开头,例:a=011; parseInt(a);  //9

十六进制:0x开头,例:a=0x11; parseInt(a);  //17

指数形式:数字e数字,例:a=3e2; parseInt(a);  //300

Infinity:超出javascript处理范围的最大值。例:a=1e10000; a;  //Infinity

-Infinity:超出javascript处理范围的最小值。例  a=-1e10000; a;  //-Infinity

NaN:一种特殊的数字,用于表示不是数字;parseInt()的参数只能是字符串,其他的均返回NaN

2、undefined:不存在、未赋值、未初始化的变量;例:如果之前没有定义变量f,则typeof(f);  //undefined

3、null:定义了但没有值、空值,不代表任何东西,必须赋给null,否则为undefined。例: var f=null;f; //null

4、字符串:用""或''包裹起来的

  • 转换为数字:当字符串中是数字时,使用算术运算符时,javascript自动将字符串隐式转换为数字;

转换为数字有两种方式:(1) 将字符串与1相乘;(2)调用 parseint()强制转换;

  • 其他类型转换为字符串类型:将其与空格相加

5、布尔值:true、false

逻辑运算符:!、&&、||、==、===。

(1)通过 ! 可以在非布尔值上执行逻辑运算将其转化为布尔值;

  • 以下6种情况在 ! 运算时,javascript先将其隐式转化为false,再进行 ! 运算:

空字符串'';null;undefined;数字0;数字NaN;布尔值 false;

  • 其他所有情况均转化为 true。

例:var a='false';!a;  //false;  因为 a 是非空字符串,所以 a 在逻辑转换前 javascript 隐式将其转换为 true,再进行!运算,最终为 false;

(2)惰性求值

  • ||运算符:前面确定为true,则不运算后面的直接返回true;当遇到非布尔类型的操作数时,则直接返回该操作数,不在往下运行。
  • &&运算符:全部运算;当最后一个参数为非布尔类型的操作数时,则返回该操作数。

例1:

var a=2;var b=1; b||true||a;  //1;   因为整个运算为 || ,所以直接将第一个非布尔值的操纵作数返回

true||a;  //true;  第一个是布尔值 true,停止向下运行,直接返回;

true&&a;  //2;  由于是&&运算,当最后一个是非布尔类型的操作数时,则返回该操作数。

b&&true&&a;  //2;  执行顺序b&&true》true;true&&a》2;

a=0;b&&true&&a;  //0; 可见,在&&、||运算中,javascript并没有像!一样将非布尔值0进行隐式转换false,

a=0;b&&true||a;  //true;  b&&true的结果为true,后面是||就不在往下执行了。

a=0;b||true&&a;  //1;  执行顺序 true&&a》0;  b||a》1;

例2:

  var h=h||10; h;  //10;  在 h||10 中,由于 h 为 undefined ,因此 h||10 返回 10;

var h=1;var h=h||10;h;  //1;    在 h||10 中h为1;所以  h||10 返回 1;

var h=h||10; 当变量已被定义,则变量保持原有值,否则初始化;这种方式以后会大量遇到,要特别注意。

(3)==

运算符 == 在执行时,先按照以下规则对比较的参数进行转换:

  • 如果左右比较的值中有 bool 型。则现将 bool 值转换为响应的 1 、 0 ;
  • 如果左右比较的值中一个为数值,另一个为 string,则将string转换为 int;
  • 如果两个参数类型还不同,能转换转换的则自动隐式转换

例子:

true=="01"   // true ; 左边true先转换为1,右边string转换为int 1,所以相等

true=="true"   // false; 左边true先转换为1,右边string转换为int  NaN,所以不相等

javascipt——基础知识——基本数据类型和逻辑运算的更多相关文章

  1. 01-Java基础知识:数据类型与变量、标识符、运算符、表达式

    Java基础知识:数据类型与变量.标识符.运算符.表达式 一.数据类型 Java定义了基本数据类型.引用数据类型.自定义类型. 八种基本数据类型:byte (1). short (2).  int ( ...

  2. JavaScript基础知识:数据类型,运算符,流程控制,语法,函数。

    JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECM ...

  3. python基础知识(七)---数据类型补充、"雷区"、编码

    数据类型补充."雷区".编码 1.数据类型补充 str: #字符串数据类型补充 s1=str(123) #常用于类型转换 print(s1) #capitalize()首字母大写 ...

  4. python基础知识之数据类型

    一.与用户的交互 古时候,我们去银行取钱,需要有一个银行业务员等着我们把自己的账号密码输入给他, 然后他去进行验证,成功后,我们再将取款金额输入/告诉他 骄傲的现代人,会为客户提供一台ATM机(就是一 ...

  5. python基础知识 变量 数据类型 if判断

    cpu 内存 硬盘 操作系统 cpu:计算机的运算和计算中心,相当于人类的大脑 飞机 内存:暂时存储一些数据,临时加载数据和应用程序 4G 8G 16G 32G 速度快,高铁 断电即消失 造价高 硬盘 ...

  6. JAVA基础知识之数据类型

    JAVA的数据类型知识点主要包括基本数据类型,包装类,字符串类(String,StringBuffer, StringBuilder区别和用法),数组,数据类型转换等等,暂时只想到这么多,后面会再补充 ...

  7. javascript基础知识2#数据类型

    数据类型 typeof 操作符 undefined类型 boolean类型 Nubmer类型 NaN(not a number) 数值转换parseInt,parseFloat String类型 字符 ...

  8. JavaScript基础知识(数据类型及转换、运算符)

    9.数据类型 概念:表示当前存储的数据的分类(表示数字 - 整数和小数) u  原始类型(原始值) -----[typeof运算符:判断变量的原始类型] *number(数字):表示数字        ...

  9. JAVA核心技术I---JAVA基础知识(数据类型)

    一:基本类型 –boolean 布尔 –byte 字节 –short/int/long 短整数/整数/长整数 –float/double 浮点数 –char 字符 (一)boolean 只有true, ...

随机推荐

  1. QT 创建对话框 Dialog 实例

    1. 2. dialog.h 头文件 #ifndef DIALOG_H #define DIALOG_H #include <QDialog> QT_BEGIN_NAMESPACE cla ...

  2. Oracle大数据表的分表处理

    1.首先给大数据表创建rownum序列号 --增加序列号字段 alter table TEST add xlh number; --填充序列号 update TEST set xlh = rownum ...

  3. 利用闭包特性改写addEventListener的回调函数

    var numClicks = 0; document.addEventListener("click",function(){ alert( ++numClicks); },fa ...

  4. openGL 3.3+ 场景渲染

    这个渲染程序是研一下学期的计算机图形学课程大作业,花了两三周学习使用了下 openGL 3.3+ 库,整合出了这个渲染程序,完成于 2013/07/05. 相对于老版本的库,新版本更开放,给了程序员更 ...

  5. Postman工具——请求与响应

    两个内容: Request 请求和 Response 响应,下面就开始了. 一.Request 请求 Request 请求,我们只介绍常用的四种:GET.POST.PUT.DELETE,其他类型的就不 ...

  6. hive中order by,sort by, distribute by, cluster by的用法

    1.order by hive中的order by 和传统sql中的order by 一样,对数据做全局排序,加上排序,会新启动一个job进行排序,会把所有数据放到同一个reduce中进行处理,不管数 ...

  7. filter原理

    index.jsp: <a href="product-input.action">input</a> <form action="prod ...

  8. yii2.0缓存的使用

    1.片段缓存(针对于视图中的某部分进行缓存): <?php 设置有效时间 $time=15; 缓存依赖,存入文件.当文件内容发生改变是才会刷新新内容 $dependecy=[ 'class'=& ...

  9. Codeforces Round #276 (Div. 2)C. Bits(构造法)

    这道题直接去构造答案即可. 对于l的二进制表示,从右到左一位一位的使其变为1,当不能再变了(再变l就大于r了)时,答案就是l. 这种方法既可以保证答案大于等于l且小于等于r,也可以保证二进制表示时的1 ...

  10. 利用HTML5开发Android笔记(下篇)

    资源来自于www.mhtml5.com 杨丰盛老师成都场的PPT分享 一个很简明的demo 可以作为入门基础 学习的过程中做了点笔记 整理如下 虽然内容比较简单 但是数量还是比较多的 所以分了3篇 ( ...