javascript六种数据类型以及特殊注意点

 这篇文章主要介绍了javascript六种数据类型以及特殊注意点,有需要的朋友可以参考一下

在js中常见的六种数据类型:String类型、Null类型、Number类型、Boolean类型、Object类型。
 
1、typeof的注意点
 
涉及到数据类型,不免会提到,操作符 typeof。要注意:
 
1、typeof是操作符,不是方法。虽然我们经常使用typeof()的方式获取对象的数据类型。
 
2、对 null 取typeof  是 object(这是因为null是 空的对象引用),对函数取 typeof 是 function
 
代码如下:
alert(typeof null);    //返回 object
function demo(){
      alert('demo');
    }
alert(typeof demo);     //返回  function
 
 
2、为各种数据类型的对象变量设置初始值
 
注意,如果Object类型的 对象变量开始不知道赋值什么,不要  var demo={};最好是 设置成null;
 
代码如下:
var d2=null;
d2={'key':"shit"};
 
var d3='';//字符串 默认
var d4=0;   //Number 类型 初始值设置为0
var d5=null; //对object 类型设置初始默认值
 
 
 
3、undefined 和null 的区别和注意点
 
1、如果用 “==” 进行比较,他们是相等的,因为比较的是值
 
2、区分他们有两种方法(他们的核心都是比较他们的 数据类型)
 
  1)使用typeof 将他们区分开  
 
  2)使用全等“===”  :比较的是 值和 数据类型,只有全都相同 才返回 true
 
 代码如下:
alert(undefined == null);             //true
alert(typeof undefined == typeof null); //false
alert(undefined === null);             //true
 
 
4、Boolean的注意点
 
1、true 和 1 比较是相同,false 和 0 比较是相同(是 “==” 比较),因为内部会实现 数据类型的 转化,将true 转换成1,将false 转换成0. js 内部有很多数据类型的自动转换,这是大家一定要注意的。后面还会提到很多。  但是使用“===”  就不相等了,因为 他们的数据类型是不等的。
 
2、显示转换成Boolean,使用Boolean()方法显示转换,需要注意的是各种数据类型,什么时候转换成true 什么时候转换成 false
 
  1)String类型,只要不是  空字符串  都会 转换成 true
 
  2)Number类型,只要不是 0 ,即使是 负数,都会转换成 true
 
  3)Object类型,只要 不是 null 类型,都会转换成true
 
  4)Undefined类型,都会转换成 false
 
我就不做演示,大家可以自己动手试一下。
 
3、(***)if()  语句的 ()  内部就是调用了 Boolean函数
 
5、Number类型注意点
 
 1、float类型 不能做精准运算
 
 代码如下:
alert(0.1+0.2);//返回 0.300000000000000004
 
 
2、 支持 科学计数法 运算
 
3、NaN(Not a Number)
 
 1)var d=0/0;  注意:在js 里 是不会报错的,而是返回 NaN
 
 2)可以通过Number.NaN 来获取 
 
 3)NaN和 任何 对象做运算都会返回 NaN
 
 4)isNaN()判断是不是 NaN
代码如下:
alert(isNaN(NaN));//true
alert(isNaN(12));//false
alert(isNaN('123'));//false:因为 字符串类型 的数字 可以自动转换成  数字
alert(isNaN('lew'));//true
alert(isNaN(false));//(*)false:因为 bool  值 可以转换成数字,true变1,,false 变 0
 
 
5)isNaN()内部执行原理:同样适用于对象。实现原理:首相调用对象的valueOf()方法,如果能转换成数字就直接做判断;如果不能就再调用toString()方法,然后测试返回值。
 
   valueOf()内部调用了toObject()方法,两个方法的 内部执行的原理:如下图:
 
 

代码如下:
var box={
        //重写  box 对象的 toString()  方法
        toString:function(){
              return '123';
            }
    };
alert(isNaN(box));//false
alert(box);//123   alert()内部也是 先调用了 对象的 valueOf()  然后调用 toString()方法
 
 
 6)将其他数据类型转换成Number类型
 
   含有三个函数:Number():可以针对所有的数据类型进行转换;parseInt()和parseFloat() 只 针对 字符串进行转化。
 
 代码如下:
alert(Number('123'));//123
alert(Number('0234'));//234
alert(Number(true));//1
alert(Number(null));//(**)0
 
//除了 上面的  其他的都是 返回 NaN
alert(Number(undefined))//NaN
 
 
 
Number()内部实现的原理:同isNaN() 也是先调用 valueOf()  然后调用 toString()。。所以可想而知,性能是比较差的。。所以所过只要要被转型的对象是字符串的话,就调用 parseInt()  或者 parseFloat()因为他们内部不需要对类型做判断。
 
parseInt() 和 parseFloat()  调用注意:从第一个 为数字的 字符开始 一直到 第一个部位数字的字符 的前一个数字  的这部分字符串 转换成数字
 
代码如下:
alert(parseInt('123leb'));//123
alert(parseInt('123leb345'));//123
alert(parseInt('len234'));//NaN
 
 
当parseInt()里面的参数是 float类型的 那么只 取得 数字的  整数部分
 
 代码如下:
alert(parseInt(56.12));//56
 
 
 6、String类型
 
 1)(*重要*)在ECMAScript中 字符串有不变性:字符串创建之后就不会再改变。
 
 要改变一个已经被赋值的字符串变量,首先要先销毁 变量中 字符串,然后再用一个包含 新值的字符串  填充变量。
 
代码如下:
var d='hello';
d=d+' shit';//执行过程:先将 'hello'赋值一份,然后将 d 中的字符串清空,将字符串 'hello' 和 ' shit'进行拼接,然后赋值给 d 变量。(所以 字符串 的值 一旦 被 创建之后 就不会 改变)
 
 
 2)toString()方法 将其他数据类型转换成 String类型。但是如果对 null 或undefined  进行操作的话就会报错。
 
 3)但是String()方法同样能实现 toString()的效果,但是 可以对 null 和undefined进行操作。
 
 内部原理:先 调用 toString(),如果可以转换成字符串,就将结果直接返回。否,再进行判断是 null 还是 undefined,然后返回‘null' 或 ‘undefined'
 
总结:如果知道 变量不可能是 null  或 undefined,就使用 toString()性能比 String(),因为 String()内部还要做判断,所以有损性能。
 
 

时间: 2024-10-22 21:17:04

javascript六种数据类型以及特殊注意点的相关文章

浅谈javascript六种数据类型以及特殊注意点_javascript技巧

在js中常见的六种数据类型:String类型.Null类型.Number类型.Boolean类型.Object类型. 1.typeof的注意点 涉及到数据类型,不免会提到,操作符 typeof.要注意: 1.typeof是操作符,不是方法.虽然我们经常使用typeof()的方式获取对象的数据类型. 2.对 null 取typeof  是 object(这是因为null是 空的对象引用),对函数取 typeof 是 function 复制代码 代码如下: alert(typeof null);  

判断javascript的数据类型

 这篇文章主要是对判断javascript的数据类型(示例代码)进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助  1 判断是否为数组类型 代码如下: <STRONG><script type="text/javascript">  //<![CDATA[  var a=[0];  document.write(isArray(a),'<br/>');  function isArray(obj){  return (typeof

javascript基本数据类型及类型检测常用方法小结_javascript技巧

本文实例讲述了javascript中的基本数据类型以及类型检测的几种方法.分享给大家供大家参考,具体如下: 1.JS中有6种基本的数据类型,JS中的所有操作都是基于这五种基本类型得到的. (1)Object 对象类型 (2)number 数字类型 (3)String 字符串类型 (4)null (5)underfined (6)boolean 布尔类型:true或者为false I)JS中的数据类型转换(非严格模式下) "12"==12 // true 在非严格模式下,字符串可以向数字

【JavaScript】数据类型

学习任何一种程序设计语言,数据类型都是必不可少的一部分内容,很基础,也很重要.该用何种数据类型定义变量,这也是编程中最基础的一项. ECMAScript中有5种简单数据类型:Undefined.Null.Boolean.Number和String.还有一种复杂的数据类型--Object.ECMAScript中不支持任何创建自定义类型的机制,所有值都成为以上6种数据类型之一. 在ECMAScript中,是用typeof操作符来检测变量的数据类型.比如: var box ='李炎恢'; alert(

JavaScript实现数据类型的相互转换_javascript技巧

所有语言都有类型转化的能力,javascript也不例外,它也为开发者提供了大量的类型转化访法,本文为大家分享js实现数据类型的相互转换,具体内容如下 字符串转换数字 var a = '1'; console.log(+a); console.log(a++); console.log(-a+3); console.log(parseInt(a)); console.log(parseFloat(a)); console.log(Number(a)); 数字转换字符串 var a = 1; a+

浅谈javascript的数据类型检测_javascript技巧

一.javascript的数据 javascript的数据分为两种:简单数据和复杂数据.简单数据包含number,string,boolean,undefined和null这五种:复杂数据只有一种即object.[此处友情鸣谢李战老师,<<悟透JavaScript>>写得太传神,印象太深刻了] 二.javascript的数据类型检测 1.万能的typeof 我们先测试一下通过typeof来获取简单数据类型.什么也别说了,上代码是王道: 复制代码 代码如下: // 获取变量obj的数

JavaScript的数据类型

JavaScript脚本语言同其它语言一样,有它自身的基本数据类型.表达式和算术运算符以及程序的基本框架结构.JavaScript提供了四种基本的数据类型用来处理数字和文字, 而变量提供存放信息的地方, 表达式则可以完成较复杂的信息处理 . 1. 基本数据类型 在JavaScript中四种基本的数据类型:数值(整数和实数).字符串型(用""号或''括起来的字符或数值).布尔型(使True或False表示)和空值. 2.常量 ·整型常量 JavaScript的常量通常又称字面常量,它是不

javascript的数据类型、字面量、变量介绍_基础知识

数据类型: 1.数值型(整型int 浮点型floating) 2.字符串类型(string) 3.布尔型(只有两个值:ture fasle) 字符串字面量 1.转义系列: 在javascript中一些符号是辨别不出来的,只有转义之后正确显示出来.如: \' 单引号 \" 双引号 \n 换行符 \r 回车符 \\ 反斜杠 转义实例: 复制代码 代码如下: <script type="text/javascript"> document.write("hel

JavaScript基本数据类型和引用数据类型

ECMAScript包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值那些可能有多个值构成的对象. 在进行变量赋值时,解析器必须确定这个值是基本类型值还是引用类型值.常用的5中基本数据类型为:Undefined.Null.Boolean.Number和String.基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值.而引用类型的值是保存在内存中的对象.JavaScript不允许直接访问内存中的位置,即不能直接操作对象的内存空间.在操作对象时,实