node.js笔记第一天

nodejs笔记

web服务器和服务端js的区别

1.js都是运行在浏览器的

ECMAScript:js语法

bom:浏览器对象模型,用js去操作浏览器窗口

Dom:文档对象模型,用js去操作dom树

2.nodejs 让js在服务器运行

ECMAscript

3.在node.js中不能写dom树和bom语法

//正常不会报错

let关键字

/**

*

* var 声明变量

* a 有变量提升

* b没有块级作用域,是函数作用域

* c可以重复声明

* d可以重新赋值

*

*

* let声明变量

*

* a 没有变量提升

* b有块级作用域

*

* c不能重复声明

* d 可以重新赋值

*

*/

a 没有变量提升

console.log(age);//报错

let age=18;

//b有块级作用域



 for(let i=0;i<10;i++){



 }

 console.log(i);//报错



//c不能重复声明



let num=10;

let num=20;//报错

console.log(num);



//d可以重新赋值



var num1=10;

num1=20;

console.log(num1);

const关键字声明常量(一旦声明不可修改)

/**

*

* const关键字声明常量(一旦声明不可修改)

* a 没有变量提升

* b有块级作用域

*

* c不能重复声明

* d声明必须赋初始值

* e不可以重新赋值

*

* 使用场景

* 一些不需要变化的值

* 大项目中一些基地

*

*/

//a 没有变量提升

// console.log(num);//报错
// const num=100;

//b有块级作用域
// {
//     const num=200;
// }
// console.log(num);//报错



// c不能重复声明

// const num=300;
// const num=400;//报错
// console.log(num);


//d (声明必须赋初始值)
// const num;//报错
// console.log(num);

//e不可以重新赋值

// const num=10;
// num=20;//报错

// console.log(num);

数组的结构赋值

/**

* 数组结构赋值

* 就是吧数组中每一个袁术的值一次赋值给变量

*

*/

//声明了一个数组

 let arr = [10,20,30,40,50];
 //es5
//  let num1=arr[0];
//  let num2=arr[1];

//  let num3=arr[2];

//  let num4=arr[3];
//  let num5=arr[4];
//  console.log(num1,num2,num3,num4,num5);

// es6
//a.
// let [num1,num2,num3,num4,num5]=arr;
//   console.log(num1,num2,num3,num4,num5);

// b.
// let [num1,num2,num3,num4,num5,num6]=arr;
//   console.log(num1,num2,num3,num4,num5,num6);

  //c

// let [num1,num2,num3,num4,num5,num6=60]=arr;
//   console.log(num1,num2,num3,num4,num5,num6);、

//d
let [num1=100,num2,num3,num4,num5,num6=60]=arr;
  console.log(num1,num2,num3,num4,num5,num6);//10 ,20,30,40,50,60,



结构赋值结合函数声明

/**
 * 
 * 结构赋值结合函数声明
 * 
 * 
 */

//es5
//声明一个函数,形参有多个

//  function test1(name,age,gender){
//      console.log(name,age,gender);
//  }
// test1("波波",28,"男");

//如果形参有多个,最好写成一个对象
// function test1(obj){
//     console.log(obj.name,obj.age,obj.gender);
// }

// test1({
//     name:"波波",
//     age:38,
//     gender:"男"
// });

//es6
//声明一个函数,形参有多个

// function test2({name, age, gender}) {
//     console.log(name, age, gender);
// }
// test2({
//     name: "波波",
//     age: 38,
//     gender: '男'
// });


箭头函数

/**

* 箭头函数

* 说白了就是密名函数的简写‘

*

*

* 简写规则

* a.function 改成=>可以读成goesto

* b.如果只有一个形参,哪就可以省略形参小括号

* c.如果不是一个形参,0个或多个形参那就不能省略这个小括号了

* d.如果函数体只有一句话那就可以省略大括号

* e如果函数体只有一句话,并且这一句话是return返回值 ,哪return也要省略

* f.若果函数体不是一句话那就不能省略大括号

*

*/

//------------------------------------------------------------------
//普通密名函数
//  let fn=function(name){
//      console.log(name);
//  }
//  fn("波波");
//  箭头函数
//  let fn=name=>console.log(name);
//  fn("波波")

//----------------------------------------


// let fn1=function(name){
//     return name+"你好吗?";
// }
// let fn1=name=>name+"你好吗";
// console.log(fn1("哲凯"));
//------------------------------------
// let fn2=function(num1,num2){
//     console.log(num1+num2);
//     return num1+num2+30;
// }

let fn2 = (num1, num2) => {
    console.log(num1 + num2);
    return num1 + num2 + 30;
}
console.log(fn2(1, 2));
//=============================================
// setTimeout(function(){

// },100);
// setTimeout(()=>{

// },100);

展开对象

/**
 * 展开运算符
 * 对象展开
 * 
 * 
 * 
 */

 //声明对象
 let chinese={
     skin:"黄皮肤",
     hair:"黑头发",
     sayHi(){
         console.log('你吃了吗')
     }
 }
  //声明对象
  let zhuBo={
    skill:"唱 跳 rap篮球",
    song:"唱大碗宽面"
}
 //声明对象
 let linge={
    // skin:"黄皮肤",
    // hair:"黑头发",
    // sayHi(){
    //     console.log('你吃了吗')
    // },
    // skill:"唱 跳 rap篮球",
    // song:"唱大碗宽面"


    //展开语法
    ...chinese,
    ...zhuBo,
    gender:"男",
    hair:"白发"

}

console.log(linge)

数组展开

/**
 * 数组展开符  ...
 * 数组展开
 */

 //eg01
//  let arr1=[10,20,30];
//  let arr2=[...arr1,40,50];
//  console.log(arr1);//[10,20,30]
//  console.log(arr2);//[10,20,30,40,50]

 //eg02
//  let arr1=[10,20,30];
//  let arr2=[40,50,60];
//  let arrNew=[...arr1,...arr2];
//  console.log(arrNew);//[ 10, 20, 30, 40, 50, 60 ]

 //eg03
 //求数组中的最大值

 let arr1=[10,8,7,66,55,23]

 let max2=Math.max(...arr1);
 console.log(max2);

数据类型set

/**
 * 数组展开符  ...
 * 数组展开
 */

 //eg01
//  let arr1=[10,20,30];
//  let arr2=[...arr1,40,50];
//  console.log(arr1);//[10,20,30]
//  console.log(arr2);//[10,20,30,40,50]

 //eg02
//  let arr1=[10,20,30];
//  let arr2=[40,50,60];
//  let arrNew=[...arr1,...arr2];
//  console.log(arrNew);//[ 10, 20, 30, 40, 50, 60 ]

 //eg03
 //求数组中的最大值

 let arr1=[10,8,7,66,55,23]

 let max2=Math.max(...arr1);
 console.log(max2);

对象成员简写

/**
 * 对象成员简写
 * 
 * 
 */

 //声明了一些变量
 let name="千里";
 let age=18;
 let gender="男";
 let score=100;
 //现在声明了一个对象
 //对象里有这些属性
 //希望属性的值是上面对应变量的值
 //es5

//  var obj={
//      name:name,
//      age:age,
//      gender:gender,
//      score:score,
//      sayHi:function(){
//          console.log("哈哈,你好");
//      }

//  }
//  console.log(obj);
//  obj.sayHi();

//es6

let obj={
   name,
    age,
     gender,
    score,
     sayHi(){
         console.log("哈哈,你好");
     }

 }
  console.log(obj);
 obj.sayHi();

对象结构赋值

/**
 * 对象结构赋值
 * 取对象中属性的值赋值给变量
 * 
 * 
 */
//声明一个对象

let obj={
    name:"波波",
    age:38,
    gender:"男",
    score:100,
};

//es5

// let name1=obj.name
// let  age1=obj.age
// let gender1=obj.gender
// let score1=obj.score

// console.log(name1,age1,gender1,score1)

//es6
//a.
// let{name:name1,age:age1,gender:gender1,score:score1}=obj;

// console.log(name1,age1,gender1,score1)

//b.
// let{name:name,age:age,gender:gender,score:score}=obj;

// console.log(name,age,gender,score);
//c.如果声明的变量名和对象属性名一致,那就可以简写
// let{name,age,gender,score}=obj;

// console.log(name,age,gender,score);

//d思考题1
// let{name,age,gender,score,fenshu}=obj;

// console.log(name,age,gender,score,fenshu);

//因为对象类没有分数这个值所以这个fenshu变量就是声明了没有赋值就是undefined

//e .现在就是希望分数这个变量的值 是obj对象中score属性的值 ,怎么写

// let{name,age,gender,score:fenshu}=obj;

// console.log(name,age,gender,fenshu);


//f希望height不是unfettered 希望他有一个默认值
// let{name,age,gender,score:fenshu,height=160}=obj;

// console.log(name,age,gender,fenshu,height);
//g相当于对age重新赋值
// let{name,age=16,gender,score:fenshu,height=160}=obj;

// console.log(name,age,gender,fenshu,height);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值