数据类型

Posted 影子疯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据类型相关的知识,希望对你有一定的参考价值。

数据类型

数字,字符串,布尔值,null,undefined,对象(数组,函数,date,正则),NaN。。。。。

number,string,boolean,null,undefined,object

 

 

数字

 

十进制:255

16进制:0xff   //15*16+15 = 255        以0x开始

8进制:0377  //3*64+8*7+7 = 255  以0开始

 

NaN和任何值都不相等,包括它本身

x!=x   当x为NaN时成立,为true,其他任何时候都为false

isNaN()  //如果参数是NaN,或者非数字值(如字符串和对象),返回true,否则返回false

 

关于数字精度问题

 

var x = 0.3-0.2;
var y = 0.2-0.1;
console.log(x == y); //false:计算机用的是二进制,比如1/2,1/4,1/8等,非十进制,只能无限于相等

 

时间和日期

<script type="text/javascript">
        var oP = document.querySelector(p);
        var then = new Date(2011,0,1);  //2011年1月1日
        var now = new Date();  //当前日期和时间:Fri Jun 30 2017 16:54:47 GMT+0800 (中国标准时间)
        var later = new Date(2017,7,1,8,10,20);  //未来时间2017年7月1日 8:00am
        var elapsed = later - now  //日期减法,计算时间间隔的毫秒数
        later.getFullYear();  //2017:获取年
        later.getMonth(); //7:获取月份,从0开始计算
        later.getDate();  //1:获取日期,从1开始计算
        later.getDay();  //2:获取星期几,0表示星期天,5表示星期五
        later.getHours();  //8:获取时
        later.getMinutes();  //10:获取分
</script>

 

 

常见数学函数

Math.pow(2,10);  //1024:2的10次幂
Math.round(0.6);  //1.0:四舍五入
Math.ceil(0.6);   //1.0:向上求整
Math.floor(0.6);  //0:向下求整
Math.abs(-5);   //5:求绝对值
Math.max(10,11,1,3,25);   //25:求最大值
Math.min(10,11,1,3,-25);   //-25:求最小值
Math.random();   //生成一个大于等于0小于1的随机数
Math.PI;   //3.14:圆周率
Math.sqrt(4);   //2:4的平方根
Math.pow(27,1/3);   //3:27的立方根
Math.sin(0);   //三角函数

 

字符串

 

 

在字符串中,‘can‘t 必须写成‘can\‘t

 

字符串方法

var str = ‘hello,world‘;
str.length;  //11:字符串的长度
str[0];  //‘h‘:获取第一个字符
str.charAt(0);  //‘h‘:获取第一个字符
str.charAt(str.length-1);  //‘d‘:获取最后一个字符
str.substring(1,4);  //‘ell‘:截取第2~4个字符
str.slice(1,4);  //‘ell‘:截取第2~4个字符
str.slice(-3);  //‘rld‘:为负数时,从最后开始数,最后3个字符
str.indexOf(‘l‘);  //2:字符l首次出现的位置
str.lastIndexOf(‘l‘);  //9:字符l最后一次出现的位置
str.indexOf(‘l‘,3);  //3:在位置3及之后l首次出现的位置
str.split(‘,‘);  //[‘hello‘,‘world‘]:以逗号为分割符,分割成有两个元素的数组
str.replace(‘h‘,‘H‘);  //‘Hello,world‘:字符替换
str.toUpperCase();  //‘HELLO,WORLD‘:变成大写

 

Note:JavaScript中字符串是固定不变的,replace()和toUpperCase()方法都返回新的字符串,原字符串本身并没有发生改变

 

布尔值 Boolean(true or false)

 

 

false --- undefined,null,0,-0,NaN,"" //空字符串

true --- 所有其他值,包含所有的对象和数组,函数

 

运算符

&& -- a && b a和b都为true,返回true,否则返回false

|| -- a || b a和b只要任何一个为true,返回true,否则返回false

! -- !a a为真,返回false;a为假,返回true

 

null和undefined

 

null--空值,用typeof null方法,得出的是object

undefined -- 未定义,属性或元素不存在

 

对象类型 -- 对象,数组,函数

对象

 

var obj = {
        ‘username‘:‘leo‘,
        ‘sex‘:‘man‘,
        ‘password‘:‘123‘
    };

获取对象值的方法 ---- obj.username //‘leo‘

obj.username = ‘momo‘; //修改userna值
obj.age = 38; //给对象添加一个age属性

 

数组

var arr = [1,2,3];
console.log(arr.length);  //3:获取arr的长度
console.log(arr[0]);  //1:获取arr中的第一个值
console.log(arr[arr.length-1]) //3:获取arr中的最后一个的值
arr[0] = 10; //修改arr中第一个值
arr[3] = 4;  //给arr添加第4个值

 

函数

function fn(){

  ....  

}

函数调用:

fn();

a = fn;

 

以上是关于数据类型的主要内容,如果未能解决你的问题,请参考以下文章

对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。 错误解决一例。(代码片段

视图或片段库为常见数据类型组成 UI

一个具有两种显示类型的片段[关闭]

(转) Java中的负数及基本类型的转型详解

从 Apollo 缓存中读取特定类型的所有片段

Android 上的 Kotlin:如何在片段中使用数据库中的 LiveData?