- var,let const变量
let表示变量可以赋值
console.log("456")
let age=30;
age=31;
console.log(age);
- const表示常量;几乎不能被改变。const声明的是数组或者对象时其内部的对象是可以被改变的,只是不能把整个数组变量完全更改。使用let可以不在声明变量时初始化数据,在使用const时候要在声明的时候初始化数值不然会报错。
- console相当于输出
- alert弹幕弹窗
//String ,NUmber,Boolean,null,undefined
在js中整形和浮点型都是number中的
const username="john"
console.log(typeof username)会输出String;只有String需要加双引号
const isCool = true;
const x=null;//这个输出的应该是null但是呢js犯了一个小错误输出的是obeject
String字符串
学名:模板字符串(现在常用)
const username="baobao "
let age=30;
//旧版
console.log("My name is"+username+"and I am "+age )
//新版现在用的
console.log(`My name is ${username} and I am ${age}`)//这个是ESC下面的那个符号可不是单引号哦
- 实际上就是把原来双引号和加号去掉直接用把内容卸载这个``里面,把要引用的变量或者常量用${名字}
并且可以把模板字符串赋值给一个常量
还能进行打印,注意直接赋值也得有``和${}
const username="baobao ";
let age=30;
//把模板字符串赋值给一个常量并且进行打印
const hello =`My name is ${username} and I am ${age}`;
console.log(hello)
-
字符串的内置属性和内置方法
length是属性所以没有括号,有括号的是方法
const s="hello world";
//想要知道有多少个字符可以使用length
console.log(s.length);//这个是属性
console.log(s.toUpperCase());//这个是方法。把字母全部大写
console.log(s.toLowerCase());//把字母全部小写
console.log(s.substring(0,5))//把字符串全部分割开,需要传入两个参数,起始和终止位置的索引。
//他会获取到终止位置的前一个位置的部分
console.log(s.substring(0,5).toUpperCase())//可以在其后面再使用一个方法
console.log(s.split(''));//可以用split将字符串转换为数组
//其需要的参数是用来分割字符串的分割点单引号里面放空格就是最小的分割
const s2="computer,it,code";
//尝试使用特定分割内容来分割字符串,使用逗号将其分割
console.log(s2.split(","));
数组
js数组有一个特性就是可以把不同数据类型元素成分的内容放到数组中
比如,普通情况下直接一个中括号就可以输入数组
const sz =["apples","abc",10,true]
console.log(sz)
数组的构造函数
const numbers =new Array(1,2,3,4,5);
console.log(numbers);
甚至通过直接赋值新加了一个元素:
const sz =["apples","abc",10,true]
sz[4]="junjun";//也可以通过重新赋值来改变一个元素
console.log(sz);
const声明的数组是可以被改变内部的前面也有说过,但是如果将它全部改变或者全部声明则会则会产生报错
例如
sz.push("jun");//希望在数组末尾添加一个元素可以使用.push
sz.unshift("jun");//希望再数组首部添加一个元素
sz.pop()//删除数组末尾元素
相当于把c语言的栈和数组结合到一块用了
const jun=[1,2,"k"]
console.log(Array.isArray(jun))//Array.isArray判断括号内是否为数组
//如果是则输出true,否则输出false
console.log(jun.indexOf(2))//寻找数组内容2的索引,很明显得到的索引是1
对象:拥有属性和方法的数据,表示为键值对的组合
同一个对象中属性可以是任何数据类型的,甚至是数组和对象也可以作为的对象的属性
例如:
const person={
firstName:"Jhon",
lastName:"Doe",
age:30,
hobbies:["music","movies","sports"],
address:{
street:"50 main st",
city:"BeiJing",
state:"MA"
},
};
console.log(person.firstName)//通过点加属性名的方法来访问任何一个属性
console.log(person.hobbies[1])//访问movies
console.log(person.address.city)//想要得到city
利用const声明花括号属性名的语句然后用persopn赋值,相当于用同名的变量将值从person中抽取出来
const{firstName,lastName,address:{city}}=person;//把city也抽取出来了
console.log(firstName);//抽取出来以后可以直接打印了哦
console.log(city)//于是就可以直接打印了
添加新的属性
person.email="asdas";//person.加一个不存在的属性名
console.log(person);//打印一下可以看到这个新加的属性
对象数组和JSON
//创建一个对象数组
const todos = [
{
id:1,
text:"take out trash",
isCompleted:true,//事物做完的程度
},
{
id:2,
text:"meishaonvzhanshi",
isCompleted:true,//事物做完的程度
},
{
id:1,
text:"chenlijun",
isCompleted:false,//事物没有完成
},
];
console.log(todos);
console.log(todos[1].text);
接下来讨论一下json,是一种数据格式,常被用做api和数据端的传输过程中,json和对象数组非常类似。
在浏览器中输入freefromatter.com
把写的对象数组复制粘贴过去网站会为我们自动生成JSON数据的格式
如和用javascript将数据转换成json
const todoJSON =JSON.stringify(todos) //定义json转换成json
console.log(todoJSON);
if条件句
===三个等号会考虑数据类型,能知道数据类型是否相同
==两个等号就不会考虑数据类型了。
else if 其他判断
与条件判断有关的三目运算符
const x=10;
const color=x>10?"red":"blue"//为真为红色,为假为蓝色。问号后面放真值
console.log(color);
switch语句
const x=10;
const color= x >10?"red":"blue"//为真为红色,为假为蓝色。问号后面放真值
console.log(color);
switch(color){
case"red":
console.log("color is red")
break;
case"blue":
console.log("color is blue");
break;//如果没有它程序会执行匹配的case后面的所有语句或者执行完所有的才会停止
default:
console.log("color is not red or blue")
}
循环语句for 和while
for 循环
//for
for(let i=0;i<10;i++){
console.log(i)
}
while循环
let i=1
while(i<10){
console.log(`while loop nubmer:${i}`);
i++;//要在这个循环里面给变量变值不然会够成一个死循环
}
大综合一下:
//创建一个对象数组
const todos = [
{
id:1,
text:"take out trash",
isCompleted:true,//事物做完的程度
},
{
id:2,
text:"meishaonvzhanshi",
isCompleted:true,//事物做完的程度
},
{
id:1,
text:"chenlijun",
isCompleted:false,//事物没有完成
},
];
for(let i=0;i<todos.length;i++){
console.log(todos[i].text);
}
另一种for循环的写法:
for(let i of todos){
//i是循环变量名字可以是任何东西,of后面的是被循环的数组
//此时的i是数组中的每一项
console.log(i)
// console.log(i.id)//希望得到每一项的id数组中每一项的id
// console.log(i.text)//希望得到每一项的id数组中每一项的text
}