javascipt——基础知识——基本数据类型和逻辑运算
进制转换: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——基础知识——基本数据类型和逻辑运算的更多相关文章
- 01-Java基础知识:数据类型与变量、标识符、运算符、表达式
Java基础知识:数据类型与变量.标识符.运算符.表达式 一.数据类型 Java定义了基本数据类型.引用数据类型.自定义类型. 八种基本数据类型:byte (1). short (2). int ( ...
- JavaScript基础知识:数据类型,运算符,流程控制,语法,函数。
JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECM ...
- python基础知识(七)---数据类型补充、"雷区"、编码
数据类型补充."雷区".编码 1.数据类型补充 str: #字符串数据类型补充 s1=str(123) #常用于类型转换 print(s1) #capitalize()首字母大写 ...
- python基础知识之数据类型
一.与用户的交互 古时候,我们去银行取钱,需要有一个银行业务员等着我们把自己的账号密码输入给他, 然后他去进行验证,成功后,我们再将取款金额输入/告诉他 骄傲的现代人,会为客户提供一台ATM机(就是一 ...
- python基础知识 变量 数据类型 if判断
cpu 内存 硬盘 操作系统 cpu:计算机的运算和计算中心,相当于人类的大脑 飞机 内存:暂时存储一些数据,临时加载数据和应用程序 4G 8G 16G 32G 速度快,高铁 断电即消失 造价高 硬盘 ...
- JAVA基础知识之数据类型
JAVA的数据类型知识点主要包括基本数据类型,包装类,字符串类(String,StringBuffer, StringBuilder区别和用法),数组,数据类型转换等等,暂时只想到这么多,后面会再补充 ...
- javascript基础知识2#数据类型
数据类型 typeof 操作符 undefined类型 boolean类型 Nubmer类型 NaN(not a number) 数值转换parseInt,parseFloat String类型 字符 ...
- JavaScript基础知识(数据类型及转换、运算符)
9.数据类型 概念:表示当前存储的数据的分类(表示数字 - 整数和小数) u 原始类型(原始值) -----[typeof运算符:判断变量的原始类型] *number(数字):表示数字 ...
- JAVA核心技术I---JAVA基础知识(数据类型)
一:基本类型 –boolean 布尔 –byte 字节 –short/int/long 短整数/整数/长整数 –float/double 浮点数 –char 字符 (一)boolean 只有true, ...
随机推荐
- SQL server 2008 T-sql 总结
数据库的实现 1.添加数据:insert [into] 表名 (字段1,字段2,···) values (值1,值2,····) 其中,into可选. 2.修改数据:update 表名 set ...
- QPushButton 响应回车 设置默认按钮
ui.pushButton->setFocus(); //设置默认焦点 ui.pushButton->setShortcut( QKeySequence::InsertParagraphS ...
- LightOJ 1245 数学
Harmonic Number (II) Description I was trying to solve problem '1234 - Harmonic Number', I wrote the ...
- python之Django admin总结
一.Django内置admin a.配置路由 urlpatterns = [ url(r'^admin/', admin.site.urls), ] b.定制admin 在admin.py中 ...
- Android dependency has different version.You should manually set the same version via DependencyReso
有时候导入一些module时,会出现以下问题 Android dependency 'com.android.support:support-v4' has different version for ...
- 【NOIP2014 普及组】螺旋矩阵
[NOIP2014 普及组]螺旋矩阵 一.题目 [NOIP2014 普及组]螺旋矩阵 时间限制: 1 Sec 内存限制: 128 MB 提交: 18 解决: 0 [提交][状态][讨论版] 题目描 ...
- Jedis的八种调用方式(功能:事务,管道)
1. packagecom.irwin.redis; 2. 3. importjava.util.Arrays; 4. importjava.util.List; ...
- 如何手动添加 WIFI 网络步骤
电脑手动添加WiFi网络步骤: 1.右键控制面板 2.进入控制面板 3.进入网络和Internet,点击设置新的连接或网络 4.点击手动连接到无线网络 5.输入网络SSID及秘钥 若需要自动连接请勾选 ...
- JVM 知识点总览 - 高级 Java 工程师面试必备
在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功.对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后 ...
- 201621123014《Java程序设计》第十二周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 面向系统综合设计-图书馆管理系统或购物车 使用流与文件改造你的图书馆管理系统或购物车. 2.1 简述如何 ...