标签(空格分隔): 廖老师学习笔记 javascript 基本入门
根据廖雪峰老师官网,自己看后的简单笔记 第一小节
基本知识
-
<script type="text/javascript"></script>
中默认type
为Javascript
,所以可以省略type指定为javascript。 - 多个
alert
出现时,alert也依次弹出。eg: alert('啦啦啦'); alert('ba啦啦');alert('baba啦'); -
==
与===
的差别。A.==比较,它会自动转换数据类型再比较,所以不建议用 == 比较。B.===比较,它不会自动转换数据类型,如果数据类型不一致,返回false。 -
NaN
是一个特殊Number与所有其他值都不相等,包括它自己。 NaN===NaN; //false; isNaN(NaN); //true -
null
表示”空“;0
时一个数值;‘ ’
表示长度为0的字符串。 - Javascript的数组包括
任意数据类型
。 eg:[1,2,3.14,'hello',null,true] 有条件下数组都使用[]. -
动态语言
:变量本身类型不固定的语言。静态语言
:定义变量时必须指定变量类型。 -
strict 模式
: 在Javascript代码的第一行写上: ‘use strict’; -
字符串
ASCII字符可以以\x##形式的十六进制表示,例如: ‘\x41'; //等同于’A'; 字符串是不可变的,如果对索引赋值,不会出错,但没有任何效果。
基本函数
-
str.toUpperCase();
把一个字符串全部变为大写。 -
str.toLowerCase();
把一个字符串全部变为小写。 -
str.indexOf('hello');
会搜索出字符串出现的索引,没有找到返回-1。 -
str.substring(0,5);
返回索引区间的子串。 - 数组中简单函数
arr.indexOf(10);
//元素10的索引为2; -
arr.slice(0,2);
//得到arr[0],arr[1],arr[2],如果只有一个数字则从当前数字到结束。 -
arr.push('a','b');
//在arr末尾添加‘a','b';arr.pop();
//删掉arr的最后一个元素。 -
arr.unshift('a','b');
//在头部添加a,b。arr.shift();
//删掉arr第一个元素。 -
arr.sort();
//按数组中首字母的ASSII排序。 -
arr.reverse();
//反转数组子集排序; -
arr.splice(2,3,'a','b');
//splice(开始删除的索引,删除的个数,添加的元素,添加的元素); -
arr.concat([1,12,3]);
/ arr.concat(1,23,[4,54]) ;//数组链接。 -
arr.join('-');
// 数组内的元素用-连接起来。
对象
- 键值
name:'beautiful'
形式申明,用,
隔开。末尾不加,
。 - 以
object.prop
的形式访问个属性了。访问不存在的属性不报错,而是返回undefined。 -
prop in object ;
'name' in xiaoming; 检测是否拥有这一属性。自身拥有,而不是继承可以用xiaoming.hasOwnProperty('name');
//true or false。 - javascript把null、undefined、0、NaN和''视为false,其他值一概视为true。
- 循环 for..in.. for(var key in arr) 把一个对所有的属性依次循环 出来。for..in...对array循环得到的是string而不是number。
-
过滤继承属性 , 用hasOwnproperty()。 for (var key in arr){ if(arr.hasOwnproperty(key)){ ;
Map&Set
- Map 是一组键值对的结构 。
var tab=new Map[['lili',98],['tao',89]]; //定义map函数 tab.get('lili'); //98 tab.set('chery',79);//添加 tab.delete('chery'); tab.has('chery');//false
- Set是key的集合,但不存储value。由于key不能重复,所以key内没有重复的key。
var s = new Set([1, 3, 4, '5', 'fast']); var s2 = new Set([1, 2, 3, 3]); // 含1, 2, 3 s.add(45); s.delete(3);
Array,Map,Set都属于iterable类型。
iterable都可以用for...of循环遍历for (var x of a) { //遍历array,Set,Map
for...of 和for...in区别:for in 存在历史遗留问题,它遍历的为对象属性名称。array也是一个对象,它的每个元素被视为一个属性。但array的length属性却不包括在内。var a = ['A', 'B', 'C']; a.name = 'Hello'; for (var x in a) { alert(x); // '0', '1', '2', 'name' }
最最最好的是使用iterable内置的forEach方法。它接受一个函数,每次迭代就自动的回调该函数。
var arr = ['a', 'l', 'b']; arr.forEach(function (element, index, array) { //element 元素 index 索引 array 字符串 }); var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]); m.forEach(function (value, key, map) { console.log(value, key); //'x','y','z' 1,2,3 });