Javascript基础(一)

xiaoxiao2021-02-28  104

一、数据类型

Number 不区分整数和浮点数

var x=123; x=0.456; x=1.2e4; x=-10; x=NaN; // Not a Number ,无法计算结果 x=Infinity; // Infinity表示无限大,当数过值超所能表示的最大值时,就表示为Infinity //四则运算,规则和数学一致: 7/2=3.5 2 / 0; // Infinity 0 / 0; // NaN

布尔值 true false

比较运算符

当我们对数据做比较时,可以通过比较运算符得到一个布尔值

   JavaScript在设计时,有两种比较运算符:

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

另一个例外是NaN这个特殊的Number与所有其他值都不相等,包括它自己:

NaN === NaN; // false isNaN(NaN); // true 关于浮点数的比较 1 / 3 === (1 - 2 / 3); // false Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

字符串类型

var str="Hello"; var str1=" world"; var str2=str+"the "+str1+"!"; str2='${str}the ${str1}!'; str2.length; //大小写转换 str2.toUpperCase(); str2.toLowerCase(); //查找字符串 var s = 'hello, world'; s.indexOf('world'); // 返回7 s.indexOf('World'); // 没有找到指定的子串,返回-1 var s = 'hello, world' s.substring(0, 5); // 从索引0开始到5(不包括5),返回'hello' s.substring(7); // 从索引7开始到结束,返回'world'数组

var arr = [1, 2, 3.14, 'Hello', null, true]; arr.length; // 6 //查找元素 arr.indexOf("Hello"); //3 //截断数组 arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3 arr.slice(3); // 从索引3开始到结束 //向数组尾部添加若干元素 arr.push("c"); arr.pop(); // 空数组继续pop不会报错,而是返回undefined //向数组头部添加若干元素 arr.unshift("a"); arr.shift(); //空数组继续shift不会报错,而是返回undefined //排序 arr.sort(); arr.reverse(); //数组翻转 //指定的索引开始删除若干元素,然后再从该位置添加若干元素 // 从索引2开始删除3个元素,然后再添加两个元素: arr.splice(2, 3, 'Good', 3); // 返回删除的元素 //数组连接 var arr1 = ['A', 'B', 'C']; var added = arr1.concat([1, 2, 3]); var arr = ['A', 'B', 'C', 1, 2, 3]; arr.join('-'); // 'A-B-C-1-2-3'对象 var student={ id: 123, name:"Helen", age : 18 } //JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性 student.score=99; delete student.age; student.hasOwnProperty('name'); // true student.hasOwnProperty('toString'); // false Map和Set

var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]); m.get('Michael'); // 95 var m = new Map(); // 空Map m.set('Adam', 67); // 添加新的key-value m.set('Bob', 59); m.has('Adam'); // 是否存在key 'Adam': true m.get('Adam'); // 67 m.delete('Adam'); // 删除key 'Adam' m.get('Adam'); // undefined //重复元素自动过滤 var s = new Set([1, 2, 3, 3, '3']); s; // Set {1, 2, 3, "3"} 二、循环 判断

//分支判断 if (age >= 6) { alert('teenager'); } else if (age >= 18) { alert('adult'); } else { alert('kid'); } //for循环 var arr = ['Apple', 'Google', 'Microsoft']; var i, x; for (i=0; i<arr.length; i++) { x = arr[i]; alert(x); } //一个对象的所有属性依次循环出来 var o = { name: 'Jack', age: 20, city: 'Beijing' }; for (var key in o) { if (o.hasOwnProperty(key)) { alert(key); // 'name', 'age', 'city' } } //while 和 do whilefor  of 循环

var a = ['A', 'B', 'C']; var s = new Set(['A', 'B', 'C']); var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]); for (var x of a) { // 遍历Array alert(x); } for (var x of s) { // 遍历Set alert(x); } for (var x of m) { // 遍历Map alert(x[0] + '=' + x[1]); } foreach循环var s = new Set(['A', 'B', 'C']); s.forEach(function (element, sameElement, set) { alert(element); }); var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]); m.forEach(function (value, key, map) { alert(value); });

转载请注明原文地址: https://www.6miu.com/read-75615.html

最新回复(0)