JavaScript高级程序设计之数据类型
首先讲讲关于js文件放置的问题,如果把<script>放在head标签处,浏览器会先加载完该处的所有不使用defer属性的js文件再呈现页面的内容(浏览器在遇到body标签时才呈现内容),如果需要加载很多js文件的话,在呈现页面时会出现明显的延迟,延迟期间浏览器窗口将是一片空白。为了解决这一问题可以在最后才引入js文件,body标签结束之前。
JavaScript的核心实现了ECAMScript定义的标准,ECAMScript定义了5种简单的数据类型:Undefined、Null、Boolean、String、Number,还有一种复杂数据类型Object。可用typeof操作符判断数据类型。
1、Undefined类型:
Undefined只有一个值,undefined,当使用var声明变量但未对其进行初始化时默认会给该变量初始化,这个值就是undefined。
2、Null是第二种只有一个特殊值得数据类型null。
3、Boolean类型:关于boolean类型需要注意以下这些类型转换成boolean类型时是true还是false。
数据类型 转换为true的值 转化为false的值
Boolean true false
String 非空字符串 ""(空字符串)
Number 任何非零数值 0和NaN(Not a Number)
Object 任何非空对象 Null
Undefined undefined
4、数值类型:
4.1 关于浮点数值的计算,因为是基于IEEE754,所以可能会存在误差。所以不能把两个浮点数相加等于某值用作if的条件表达式。
1 if(a + b == 0.3){
2 alert("hehe");
3 }
如果a、b分别等于0.1和0.2,则这个alert语句不会执行,因为这个a+b = 0.3000000000001......
4.2 isNaN():(Not a Number)只要是数字或者能够转换成数字都会返回false。
4.3 数值的转化,有三个方法Number()、parseInt()、parseFloat().
Number()较复杂不常用,在处理整数时常用的是parseInt()。parseInt方法在将字符串转换成数字时,会忽略掉字符串前的空格,直到找到第一个非空字符串,如果不是数字或者负号,则会返回NaN,如果第一个是数字字符,则会继续解析第二个字符,直到解析完所有数字字符或者碰到非数字字符停止。parseInt提供了一个类似java的重载方法(javascript没有重载),第二个参数传入需要转化的进制,就可以将数值转换成相应进制的值。
1 var num1 = parseInt("1234blue"); //1234
2 var num2 = parseInt("1234blue123"); //1234
3 var num3 = parseInt("a1234blue123"); //NaN
4 var num4 = parseInt(""); //NaN
5 var num5 = parseInt(22.5); //22
6 var num = parseInt("AF", 16);
parseFloat只解析十进制,没有提供解析成8进制等的类似java重载方法。
5、String类型
toString():转换成String类型的方法,数值、布尔值、对象、字符串都有toString方法,null和undefined没有
String(): 如果有toString方法则调用toString方法,没有,null 输出“null” undefined 输出“undefined”。
6、Object类型
JavaScript高级程序设计之数据类型的更多相关文章
- 读javascript高级程序设计00-目录
javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...
- 《JavaScript高级程序设计》读书笔记--前言
起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的 ...
- 阅读摘录《javascript 高级程序设计》01
前言: 因为工作需要,所以开始主攻前台JS方面的技术.在以前的工作中,使用过这门脚本语言.但是都是比较凌乱的,用到什么学什么,只是为了实现业务,而去使用. 不会考虑到代码优化,封装对象等.今次特意借了 ...
- 《JavaScript高级程序设计》学习笔记(3)——变量、作用域和内存问题
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第四章内容. 1.函数:通过函数可以封装 ...
- 1 《JavaScript高级程序设计》学习笔记(1)
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 首先,我将从<JavaScript高级程序设计>这本JavaScript学习者必看的经典教 ...
- javascript高级程序设计阅读笔记(一)
javascript高级程序设计阅读笔记(一) 工作之余开发些web应用作为兴趣,在交互方面需要掌握javascript和css.HTML5等技术,因此读书笔记是必要的. javascript简介 J ...
- 《JavaScript高级程序设计》学习笔记
系统学习JS, 从<JavaScript高级程序设计>入门,通过学习jQuery或者angularJS源码来进阶. 第1章 JavaScript简介 1.JS问世的目的是处理以前由服务器端 ...
- JavaScript 高级程序设计 目录
为什么会写这个学习教程呢??因为一直以来,学习JavaScript都没有系统的学过,用什么学什么,所以今天开始,重新把JavaScript系统的学一遍!(本人也是菜鸟一枚,语文水平也还是小学程度,看得 ...
- 读书时间《JavaScript高级程序设计》一:基础篇
第一次看了<JavaScript高级程序设计>第二版,那时见到手上的书,第一感觉真是好厚的一本书啊.现在再次回顾一下,看的是<JavaScript高级程序设计>第三版,并记录一 ...
随机推荐
- A beginner’s introduction to Deep Learning
A beginner’s introduction to Deep Learning I am Samvita from the Business Team of HyperVerge. I join ...
- 关于java调用linux shell 的问题
问题的提出: shell脚本要做离线的数据处理任务 java调用脚本,将这种处理任务封装成webservice 特点: shell处理单个时间长 每次要处理文件量大 这里目前只做调用分析: 原来的: ...
- ASP.NET登录控件延伸(个性化)
既然由登录控件涉及到了Membership,那么就不得不提到用户个性化Profile对象.个性化允许为用户保存特定的个性化信息到数据库中,因此它不同于ASP.NET状态管理之处在于可以永久性保存这些信 ...
- 【转】Sublime text 3 中文文件名显示方框怎么解决
引用自:http://www.zhihu.com/question/24029280 如图,中文文件名打开全是乱码,内容倒是装了converttoutf8没什么太大的问题. 这个是sublime te ...
- dedecms还原数据时要选对备份目录 不然会提示function文件出错
小李子最近在学习dedecms,在网上下载了一个二次开发的系统,顺利安装后想要还原一下作者的备份数据,可一直没有成功,让ytkah查看一下什么情况.进到后台,点击还原,提示/e/class/funct ...
- 《暗黑世界GM管理后台系统》部署+功能说明文档
http://www.9miao.com/product-10-1073.html <暗黑世界GM管理后台系统>部署+功能说明文档 <暗黑世界GM管理后台系统>部署+功能说明文 ...
- NodeJS介绍
1.概述: Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用于创建快速的.可扩展的网络应用.Node.j ...
- SQL技术内幕-12 SQL优化方法论前言
我推荐的一种使用自顶向下的优化论.这种方法,首先分析实例级的等待时间,在通过一系列步骤将其不断细化,知道找出系统中导致大量等待的进程/组件.一旦找出这些令人讨厌的进程,就可以集中优化他们了,一下是这种 ...
- 【poj3358】消因子+BSGS 或 消因子+欧拉定理 两种方法
题意:给你一个分数,求它在二进制下的循环节的长度,还有第一个循环节从哪一位开始. For example, x = 1/10 = 0.0001100110011(00110011)w and 0001 ...
- GET和POST测试(支持需要登录的接口调用:高级功能->填写cookie)
http://coolaf.com