JavaScript学习(一)基础入门

1,变量定义

//使用严格检查模式
'use strict'

let a =1;
let b= 'string';
let c= "string";
let d =true;

2,数值

**Number 类型:**JS不区分小数和整数,统一为number

tip:

  • NaN:not a number 表示不是一个整数NAN
  • Infinity:表示无穷大

3,比较运算符

= :赋值运算符

== :等于(类型不一致,但值一直也输出true)

console.log('1'==1)
true

===:只有当类型和值都一致时才输出true

console.log('1'===1)
false

补充:NaN不等于NaN

console.log(NaN===NaN);
false
console.log(isNaN(NaN));
true

4,字符串

  1. 字符串用单引号或双引号包裹都可以

  2. 和Java一样存在转义字符(使用方法相同)

  3. 多行字符串编写(用``包裹)

    let s=`
    第一行
    第二行
    `;
    
  4. 模板字符串(字符串拼接)

    let ss ='world'
    console.log(`hello ${ss}`);//hello world
    
  5. 字符串长度

    let ss ='world'
    console.log(ss.length);//5
    
  6. 字符串不可变(和Java的String一样)

    let sss="hhh";
    >undefined
    sss[1]=1;
    >1
    sss
    >"hhh"
    
  7. 常用函数

    函数名作用
    toUpperCase()转大写,返回一个全大写的字符串
    toLowerCase()转小写,返回一个全小写的字符串
    indexOf()查询索引,返回索引值
    substring(a,b);返回[a,b)区间内的字符串
    substr(a,b)返回[a,a+b)区间内的字符串

5,数组

  1. 数组可以包括任意类型的数据

    let arr =[1,2,3,true,3.1,"ss"];
    
  2. 数组的长度

    arr.length
    

    数组的长度可以任意改变的,给arr.length赋值,过小则裁剪,过大则补

    let arr =[1,2,3,true,3.1,"ss"];
    undefined
    arr.length
    6
    arr
    Array(6) [ 1, 2, 3, true, 3.1, "ss" ]
    
    arr.length=10;
    10
    arr
    Array(10) [ 1, 2, 3, true, 3.1, "ss", <4 empty slots> ]
    
    arr.length=2;
    2
    arr
    Array [ 1, 2 ]
    
  3. indexOf

    通过元素获得下标索引

    var arr2 = [1,2,'1','2'];
    undefined
    arr2.indexOf(1)
    0
    arr2.indexOf('1')
    2
    arr2[4]="1";
    "1"
    arr2
    (5) [1, 2, "1", "2", "1"]
    arr2.indexOf("1");
    2
    

    1和 '1’严格区分,"1"和’1’相同

  4. slice():截取数组的一部分,返回一个新的数组

arr2
>(5) [1, 2, "1", "2", "1"]
arr2.slice(1,2)
>[2]
  1. 补充常用函数

    函数名作用
    shift()在字符串头部加入一个元素
    unshift()在字符串头部弹出一个元素
    push()在字符串尾部压入一个元素
    pop()在字符串尾部弹出一个元素
    revese()反转字符串
    concat()返回两个数组的连接
    join()利用字符,打印拼接字符串
    sort()排序字符串

6,对象

本质:对象是由若干个键值对组成的,键全部都是字符串,值可以是任意对象

let 对象名 =  {
     属性名1:属性值,
     属性名2:属性值,
     属性名3:属性值
};
  • 给对象的属性赋值
let person ={
    name:'',
    age:0
}
person.age=3;
console.log(person.age);//3
  • 给一个不存在的属性赋值(不会报错,而是会动态的增加一个属性)
var peoper = { name:""};
>undefined
peoper.hhh=1;
>1
peoper
>{name: "", hhh: 1}
  • 动态的删除属性
peoper
>{name: "", hhh: 1}
delete peoper.hhh
>true
peoper
>{name: ""}
  • 查询某属性是否在该对象中(包括继承)

此处注意:键全部都是字符串

peoper
{name: ""}
console.log(name in peoper);
1 false
undefined
console.log('name' in peoper);
1 true
  • 判断一个属性是否是该对象所独有的(不包括继承)
console.log('toString' in peoper);
1 true
peoper.hasOwnProperty("toString");
false

7,流程结构

此处省略于Java相同的部分

for in 循环

  • 可以把一个对象的所有属性显示出来 应用:数组的所有元素的显示(数组的下标其实就是数组这个对象的属性)
//使用严格检查模式
'use strict'

let person ={
    name:'haha',
    age:18,
    sex:'male'
};
for (let personKey in person) {
    console.log(personKey);//name age sex
}

let arr=[111,2,1,5,7];
//for each ES5 中操作数组的一种方法,主要功能是遍历数组
//value:遍历的数组内容;index:对应的数组索引,array:数组本身。
arr.forEach(function(value,index,array){
    console.log(value);
    console.log(index);
    console.log(array);
});
//请注意,for ... in对Array的循环得到的是String而不是Number。
for(let arrkey in arr){
    console.log(arrkey);//这里获得的是数组的下标
    console.log(arr[arrkey]);//获得数组的元素
}

在这里插入图片描述

这里要注意一点:for in 打印数组时,不但会打印出数组的每个枚举元素,而且会打印非枚举的元素

//这里个arr数组增加一个属性
arr.name ='hhaha';
for(let arrkey in arr){
    console.log(arrkey);//这里获得的是数组的下标
    console.log(arr[arrkey]);//获得数组的元素
}

在这里插入图片描述

for of

for...of 语句创建一个循环来迭代可迭代的对象(数组,字符串,map ,set),不能用于循环普通对象(必须将其转化为array like 的对象,利用Array.from方法,再者与for in不同,for of 只会遍历出枚举型元素,不会遍历出多余的东西(for each 也不会!)

for(let arrkey of arr){
    console.log(arrkey);//这里获得的是数组的元素
}

8,Map 与Set

Map是一组键值对的结构,具有极快的查找速度。

常用操作:创建,操作键值对,删除键值对

var maps = new Map([['jack',97],['tom',98],['amy',65]]);
//获取值
console.log(maps.get('jack'));
//修改键值对
maps.set('jack',98);
console.log(maps.get('jack'));
//判断是否存在
console.log(maps.has('tom'));
//删除键值对
maps.delete('amy');
console.log(maps.has('amy'));

在这里插入图片描述

SetMap类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。

常用操作:创建,添加,删除

var sets = new Set([1,2,'1']);
//1和 '1'是不同的元素
console.log(sets);
//set增加元素
sets.add(3);
console.log(sets);
//set删减元素
sets.delete('1');
console.log(sets);

在这里插入图片描述

iterable

ES6标准引入了新的iterable类型,ArrayMapSet都属于iterable类型。

具有iterable类型的集合可以通过新的for ... of循环来遍历。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值