javascript 总结 入门

本文是看廖雪峰老师的博客做的笔记。
1. js大小写敏感
2. js的数据类型包括:
- Number:包含NaN(not a number,无法表示的结果用NaN表示,eg /0);Infinity(无穷大,当数值超过了能表示的最大值时)
- 字符串:既可以用单引号,也可以用双引号
- 布尔值
3. ==运算符和===运算符:==会自动转换数据类型进行比较,===如果数据类型不一致,会返回false。始终用===运算符
- 0 == false:true
- 0===false:false
4. NaN和所有其他值都不相等,NaN===NaN:false;NaN == NaN:false,唯一能判断NaN的方法是通过isNaN()函数。 is(NaN):true
5. 浮点数相等的判断,判断差的绝对值是都小于某个阈值
6. 数组直接通过下标访问(0….n-1),可以包含任意数据类型,有两种构造方式:
- [1,2,”array”]; 建议使用
- new Array(1,2,”array”);
7. null 同java的NULL,表示空undefined :仅仅在判断参数是否传递的时候用
8. 声明一个变量用var语句,js为动态语言未用var声明的变量为全局变量,同一个页面的不同js文件中的全局变量可以互相访问;使用var声明的变量范围被限制在该变量声明的函数体内,strict模式强制使用var声明变量,启用strict模式的方法是在js代码的第一行写上”use strict”
9. chrome调试用console.log()函数
10. ‘\x41’是以十六进制表示的ascii字符,‘A’;
0x41是以十六进制表示的整数,65,‘A’的编码为65.
11. 多行字符串: `这里是多行字符串`
12. 字符串操作
- 字符串拼接用+
- toUpperCase()
- toLowerCase()
- indexOf():搜索指定字符串出现的位置
- substring(int start,int end):返回子串[start,end)包括start不包括end,不指定end到末尾
- 支持下标访问,给s[1]赋值不会报错,但毫无意义(字符串为常量)
13. 模板字符串

var name = "xiaoming"var age = 20;
var message = `${name},${age}`;
======>   name  和 age 应该在message定义之前定义,message定义的时候使用``括起来而不是""
  1. 数组操作 :array的大小是可变的
    • 使用array.length获取数组的长度,通过修改array.length可以更改数组的长度。
    • 通过索引进行赋值,索引超出了范围,也会修改array的大小。
    • indexOf():搜索一个指定的元素的位置
    • slice(int start,int end):对应于substring(),如果不传递参数,则从头到尾截取所有的元素,可以用来复制数组
    • push() 向array的末尾添加元素
    • pop() 把array的末尾元素删除,返回删除的元素
    • unshift() 向array的头部添加元素
    • shift() 删除array的头部元素
    • sort() 排序函数
    • reverse() 反转
    • splice(int deleteStart,int deleteLen,addItem):修改array的万能方法,前两个元素表示删除的起始位置和长度,若不删除,则len=0;后面紧跟可变长参数,表示要添加的元素,添加到start开始的位置,如不添加,则不输入。该函数返回删除的元素。
    • concat()拼接,返回新的array。array3 = array1.concat(arrray2);
    • join() 它把当前array的每个元素都用指定的字符串拼接起来,然后返回连接后的字符串。array.join(‘-‘)
    • foreach array的索引被视为对象的属性,array[‘0’]和array[0]结果相同
for(var i in array){
    console.log(i+" : "+array[i]); //i为string类型  
}
  1. 对象,对象是由键值对组成的集合。相当于其他语言的字典,可以动态的给对象添加和删除属性。
var xiaoming = {
name:"xiaoming",
age:24 //这里不加逗号
}; //分号结尾
//获取属性  不存在的属性返回undefined
xiaoming.name  //常用
xiaoming["name"]
//添加属性
xiaoming.birth = "..."
//删除属性
delete xiaoming.name
//检测是否拥有某个属性
"name" in xiaoming
//检测是否是在xiaoming类中定义的,而不是从父类进入的
hasOwnProperty("name"//for..in
for(var key in xiaoming){
    console.log(key+" = "+xiaoming[key]); //这里的key为字符串类型,带引号
}
  1. for..in语句(相当于foreach)
  2. Map:键值对,使用二维数组初始化
var m = new Map([["1",1],["2",2]]);
var m = new Map();
m.get('1'); //根据key查找value
m.has("1");//查找是否存在key
m.set("3",3);//设置键值对,如果key="3"已经存在,则替换,否则,新建。
m.delete("1");//删除键
  1. Set:只存储key(不重复),不存储value。使用一维数组初始化。
var set = new Set();//空的
var set = new Set([1,2,3]);
set.add(4);//添加
set.delete(4);//删除
set.has(4);//查询是否存在
  1. for..of循环,适用于iterable类型(Array,Map,Set),遍历输出元素
var array = [1,2,3];
for(var x of array){
    console.log(x);
}
var set = new Set(array);
for(var x of set){
    console.log(x);
}
var map = new Map([[1,"2"],[2,"2"]]);
for(var x of map){
    console.log(x[0]+" "+x[1]);
}

2.iterable自身带有forEach函数,他接收一个函数,每次调用都自动回调该函数。

array.forEach(function(element,index,array){
    //element指向当前元素的值
    //index:指向当前元素的下标、索引
    //array:数组本身
})
set.forEach(element,sameElement,array){
    //前两项相同,无索引
}
map.forEach(value,key,array){
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值