WJ_Blog

天青色等烟雨 而我在等你

ECMAScript 基本数据类型

1.1. 数字类型JavaScript 没有整型和浮点型,只有一种数字类型,即number类型。JavaScript内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所有,1和1.0是相同的,是同一个数。var x = 10; var y = 3.14; console.log(x,typeof x); // 10 "number" console.log(y,typeof y); // 3.14 "number" console.log(1 === 1.0) // true1.2. 字符串字符串创建(两种方式)变量 = “字符串”字串对象名称 = new String (字符串)var str1="hello world"; var str1= new String("hello word");// 字符串对象的操作 var str = "hello"; // 这就是字符串对象 console.log(str); // 字符串对象内置属性 // length 计算字符串的长度 console.log( str.length ); // 字符串对象内置方法 // toUpperCase(); 字母大写转换 // toLowerCase(); 字母小写转换 console.log( str.toUpperCase() ); console.log( str.toLowerCase() ); // indexOf 获取指定字符在字符串中第一次出现的索引位置 // 字符串也有下标,也可以使用中括号来提取字符串的指定字符 console.log(str[1]); // e console.log( str.indexOf("e") ); // 1 // 切片,当前方法支持使用负数代表倒数下标 // slice(开始下标) 从开始位置切到最后 // slice(开始下标,结束下标) 从开始下标切到指定位置之前 var str = "helloworld"; var ret = str.slice(3,6); // 开区间,不包含结束下标的内容 console.log(ret); // low var ret = str.slice(5); console.log(ret); // world var ret = str.slice(2,-1); console.log(ret); // lloworl var ret = str.slice(-4,-1); console.log(ret); // orl var ret = str.slice(-1,-4); console.log(ret); // orl // split 正则分割,经常用于把字符串转换成数组 var str = "广东-深圳-南山"; var ret = str.split("-"); console.log( ret ); // substr 截取 var str = "hello world"; var ret = str.substr(0,3); console.log(ret); // hel // trim 移除字符串首尾空白 var password = " ge llo "; var ret = password.trim(); console.log(password.length); // 13 console.log(ret.length); // 6 1.3. 布尔值1、Boolean类型仅有两个值:true和false,也代表1和0,实际运算中true=1,false=02、布尔值也可以看作on/off、yes/no、1/0对应true/false;3、Boolean值主要用于JavaScript的控制语句console.log(true); console.log(false); console.log(typeof true); console.log(true === 1); console.log(true == 1); console.log(true + 1); console.log(false + 1);1.4. 空值(Undefined和Null)undefined类型undefined类型只有一个值,即 undefined。(1)当声明的变量未初始化时,该变量的默认值是 undefined。(2)当函数无明确返回值时,返回的也是值 undefined;null类型另一种只有一个值的类型是 null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。1.5. 类型转换js中,类型转换有2种.一种就是强制转换,一种就是自动转换.因为js是一门弱类型的脚本语言,所以变量会在运算符的运行要求,有时候根据运算符的要求,进行自动转换的.强制转换// 1. 转换数据为数值类型 // parseInt 把数据转换成整数 // parseFloat 把数据转换成小数 // Number 把数据转换成数值 var box1 = "一共100件"; // 转换会失败 var box1 = "100件"; // 转换会成功 var ret = parseInt(box1); console.log(box1); console.log(ret); // var box2 = "3.14"; console.log(parseFloat(box2) ); // 3.14 // var box3 = "3.14"; // 使用Number转换的数据里面必须是纯数字!!!!否则都会转换失败 // var box3 = "3.1.4"; // 转换失败! console.log( Number(box3) ); // 对于转换数值,如果转换失败的话,则结果为 NaN ,是 Not a Number ,但是NaN的类型也是number类型 // 2. 转换数据为字符串 // 变量.toString() // String(数据) var box4 = 3.14; var ret = box4.toString(); console.log(ret); // ret = String(box4); console.log(ret); // 3. 转换数据成布尔类型 // Boolean() var box5 = ""; console.log( Boolean(box5) ); // false var box6 = -1; console.log( Boolean(box6) ); // true var box7 = 0; console.log( Boolean(box7) ); // false; var box8 = "false"; console.log( Boolean(box8) ); // true var box9 = []; console.log( Boolean(box9) ); // true var box10 = {}; console.log( Boolean(box10) ); // true var box11 = "0"; console.log( Boolean(box11) ); // true var box12 = null; console.log( Boolean(box12) ); // false var box13 = undefined; console.log( Boolean(box13) ); // false自动转换// 所谓的自动转换,其实弱类型中的变量会根据当前代码的需要,进行类型的自动隐式转化 var box1 = 1 + true; // true 转换成数值,是1, false转换成数值,是0 console.log(box1); // 2 var box2 = 1 + "200"; console.log(box2); // 1200 原因是,程序中+的含义有2种,第一: 两边数值相加, 第二: 两边字符串拼接.但是在js中运算符的优先级中, 字符串拼接的优先级要高于数值的加减乘除,所以解析器优先使用了+号作为了字符串的拼接符号了,因为程序就需要+号两边都是字符串才能完成运算操作,因此1变成字符串最终的结果就是 "1" +"200" var box3 = 1 - "200"; console.log(box3); // -199;因为-号中表示的就是左边的数值减去右边的数值,因此程序就会要求"200"是数值,因此内部偷偷的转换了一下1.6. 原始值和引用值根据数据类型不同,有的变量储存在栈中,有的储存在堆中。具体区别如下:原始变量及他们的值储存在栈中,当把一个原始变量传递给另一个原始变量时,是把一个栈房间的东西复制到另一个栈房间,且这两个原始变量互不影响。引用值是把 引用变量的名称储存在栈中,但是把其实际对象储存在堆中,且存在一个指针由变量名指向储存在堆中的实际对象,当把引用对象传递给另一个变量时,复制的其实是指向实际对象的指针, 此时 两者指向的 是同一个数据,若通过方法改变其中一个变量的值,则访问另一个变量时,其值也会随之加以改变;但若不是通过方法 而是通过 重新赋值 此时 相当于 重新开了一个房间 该值的原指针改变 ,则另外一个 值不会随他的改变而改变。// 初始值类型 var a = "yuan"; var b = a; a = "alvin"; console.log(a);//alvin console.log(b);//yuan // 对象类型 var arr1=[1,2]; arr2 = arr1; arr1.push(3); console.log(arr1)// [1,2,3] console.log(arr2);//[1,2,3] arr1=[4,5]; console.log(arr1);//[4,5] console.log(arr2);//[1,2,3]
lwj JavaScript 阅读全文

test1

1
lwj python 阅读全文

test2

1
lwj python 阅读全文

test3

1
lwj python 阅读全文

test4

lwj python 阅读全文

文章分类

最新文章

  • Flask个人博客搭建
  • Django简易聊天
  • P2接口加密通信协议详解

文章标签