码迷,mamicode.com
首页 > Web开发 > 详细

JS数据类型

时间:2018-01-18 17:18:53      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:push   number   obj   部分   string   执行   布尔   代码   比较   

一、Js是有数据类型的 为弱类型!

  弱类型:JS不需要我们去定义变量的类型,它会自己去判断我们定义的变量的类型!

 

二、Js的数据类型:七种(ES5) symbol不可变更类型(ES6)

  number数字类型(NAN)、string字符串类型、boolean布尔类型、Object对象类型([]、{}、null、undefined)===>属性typeof判断数据类型

 //数字类型

var i=100;
alert(typeof i); 

//字符串类型

var s=" movie ";
alert(typeof s);
alert(s.length); //7 空格也算一个字符
alert(s.charAt(3)); //v是第四个 但是charAt属性的的起始值为0;

  //布尔类型

var j=true;
alert(typeof j); //boolean:true或者false
// if(boolean){}
// for(;boolean;){}

 //函数

var fn=function (){alert(1);};
function fn1(){
    alert(1);
}
// alert(typeof fn);
alert(typeof fn1); //fn1是该函数的函数名 若此处改为fn1():浏览器执行两次,先执行函数内的语句fn1(),再执行typeof判断为undefined。

 //对象Object

var obj=document.getElementsByTagName(div);
alert(typeof obj); //object:东西、物品  不同于现实生活中的杯子、桌、椅等可以摸得着、看的见的物品,其本身是虚拟的但客观存在于虚拟网络中,所以又称之为对象 window、document、document.getElementById(‘id‘);
//obj不为空
 //添加属性
obj.abc=123;
obj.onOff=true;
 //添加方法  
obj.fn1=function(){alert(1);}; 
alert(obj.onOff); 
obj.fn1(); //调用函数

 //数组[]

var arr=[1,2,3,4];
alert(arr.length);
arr[2]=345; //改变数组内的内容
alert(arr);
arr.push(5,6,7); //向数组内添加东西
alert(arr);
alert(typeof arr); //object对象
arr.abc=889;
arr.fn1=function(){alert(ok);};
//alert(arr.abc);
//arr.fn1();

 //{}

var jons={name:miaov,age:5};
alert(jons.name); //等同于将属性name:‘miaov‘和age赋予jons变量
alert(typeof jons); //object

  //null

var n=null;
alert(typeof n); //object

 //undefined

var n;
alert(typeof n); //undefined 未定义
//表示你的代码出现错误~~

三、JS数据类型转换(包含隐形转换)

 1、显示 类型转换

  1. number();

var a=100;
// alert(a+100); //‘100100‘
// alert(Number(a)+100); //Number将看上去像数字的字符串转换为数字(整数和小数) 对字符串转换能转换的部分
var a1=‘‘;
// alert(Number(a1)); //空格和null皆转换为0
var a2=true;
// alert(Number(a2)); //true-1;false-0
var a3=[];
// alert(Number(a3)); //数组内不能有多个内容 无内容转为0 其余内容同a
var a4=null;
// alert(Number(a4)); //0

         number();无法转化的会弹出NaN: not a number 不是个数字的数据类型

var a5;
// alert(Number(a5));  //NaN
var jons={};
// alert(Number(jons)); //NaN 全部无法转换

var a3=function(){alert(1);};
// alert(Number(a3)); //NaN

   2. ParseInt();和ParseFloat();

var a=  +299px12345;
alert(parseInt(a)); 
//转换整型 1、识别加减号 2、从左往右一个一个转换 3、空格跳过 4、遇到其余符号或字母停止 var b= +12.3.9元12345; alert(parseFloat(b));
// var c=1123.134; if(parseInt(c) == parseFloat(c)){ alert(c+是一个整数); }else{ alert(c+是一个小数); }
  ①ParseInt():转换整型 
   1. 识别加减号
  2. 从左往右一个一个转换
   3. 空格跳过
   4. 遇到其余符号或字母停止
  ②ParseFloat():转换浮点数
    1. 识别加减号
   2. 从左往右一个一个转换
   3. 空格跳过
   4. 遇到第一个点不停止
   5. 遇到其余符号、字母或第二个点停止

1、隐式 类型转换:

    1. + 200+‘1‘ 数字转换为字符串

    2. -/*% 200-‘2‘ 字符串转换为数字

    3. ++ -- ‘200‘ 字符串转换为数字

    4. < > ‘299‘<4 字符串转换为数字 || ‘px299‘<‘p4‘ 将第一个数字或单词抽出来比较(utf-8的先后顺序 空格<数字<小写字母<大写字母)

    5. !取反 一律改为布尔类型

    6. == 判断值 

    7. (=== 判断类型再判断值 类型不同输出为false)不列入内

        8. +‘200‘字符串转化为数字

 

四、isNaN应用实例

  //NaN是不是数字类型

var a=Number(abc);
alert(a); //NaN
alert(typeof a); //a是数字类型

 

  //同一个NaN彼此不相等

alert(a===a);

  //NaN的布尔类型为假(false)

if(a){
    alert();
}else{
    alert();
}

isNaN: Is not a number 是不是 不是一个数字(不是数字

 isNaN();  //true false  (判断某些值是不是数字)

  可以这样记忆:isNaN这个属性不喜欢数字,遇到数字就会输出 false

    1. 字符串会先由Number()判断 如果是数字输出为false 反之输出为true

    2. alert(alert(isNaN(‘250.34‘))); //false

    3. alert(isNaN(‘250px‘)); //ture

window.onload=function(){
    var aInput=document.getElementsByTagName(input);
    var str="";
    
    aInput[1].onclick=function(){
        str=aInput[0].value;
        //alert(typeof str); //从文档中提取的内容皆默认为string
        if(isNaN(str)){
            alert(str+不是数字);
        }else{
            alert(str+是数字);
        }
    };
};

  上面的这个例子如果不是很懂,可以忽略 不影响 到后面了解更为全面之后 会发现很简单!!!

 

JS数据类型

标签:push   number   obj   部分   string   执行   布尔   代码   比较   

原文地址:https://www.cnblogs.com/wssjzw/p/wssjzwtypeof.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!