JavaScript
1、函数
1.1、定义函数
定义方式一
function 函数名(){ 函数体; }
定义方式二
var 函数名 = function(){ 函数体; }
★参数问题:JavaScript在传递参数时可以传递任意个参数或不传参
arguments:表明传进来的所有参数是一个数组
rest参数:获取除了已经定义的参数之外的所有参数(必须写下参数最后面)
function aaa(a,b,...test){ console.log("a -> "+a); }
1.2、变量的作用域
-
在JavaScript中,var定义变量实际是有作用域的(例:在函数体内申明,在函数体外不可以使用)
-
如果两个函数使用了相同的变量名,只要在函数体内,就不冲突
-
内部函数可以访问外部函数的成员,反之则不行
规范(把自己的代码放在自己定义的唯一空间中,降低命名冲突问题)
var xxx = {}; // 唯一全局变量 xxx.name = ''; // 定义全局变量 xxx.add = function(a,b){ return a + b; //定义方法 }
常量(const)
1.3、方法
方法就是放在对象里面,对象只有两个东西:属性和方法
定义
var xxx = { name : 'sss', birth : 2000, age:function(){ var now = new Date().getFullYear(); return now - this.birth; } }
拆分定义
function gatAge(){ var var now = new Date().getFullYear(); return now - this.birth; } var *** = { name : 'sss', birth : 2000, age:getAge }
apply
在JavaScript中可以控制this指向
function gatAge(){ var var now = new Date().getFullYear(); return now - this.birth; } var *** = { name : 'sss', birth : 2000, age:getAge } var xiaoming = { name : '小明', birth : 2000, age:getAge } getAge.apply(***,[]); // this指向了***,参数为空 getAge.apply(xiaoming,[]);
2、内部对象
2.1、Data
基本使用
var now = new Data(); now.getFullYear();//年 now.getMouth();//月 now.getData();//日 now.getDay();//星期几 now.getHours();//时 now.getMinutes();//分 now.getSeconds();//秒 now.getTime();//时间戳 全国统一 console.log(new Data(1651551780241);
转换
console.log(new Date(1651551780241)) Tue May 03 2022 12:23:00 GMT+0800 (中国标准时间) now.toLocaleString(); '2022/5/3 12:23:00' now.toGMTString() 'Tue, 03 May 2022 04:23:00 GMT'
2.2、JSON
json是什么点击跳转百度百科
JSON字符串和JS对象的转化
var user = { name:"xxx", age:3, sex:'男' }; //对象转化为json字符串 var jsonUser = JSON.stringify(user); //JSON字符串转化为对象 var obj = JSON.parse{'{"name":"xxx","age":3,"sex":"男"}'};
3、面向对象编程
3.1、class继承
1、定义一个类。属性,方法
class student{ constructor(name){ this.name = name; } hello(){ alert("hello"); } } //创建对象 var xiaoming = new student("xiaoming"); xiaoming.hello();
2、继承
class student{ constructor(name){ this.name = name; } hello(){ alert("hello"); } } class xxx extends student{//继承 constructor(name,grade){ super(name); this.grade = grade; } myGrade(){ alert("sss"); } } var xiaoming = new xxx("xiaoming",2);
原型链(__ proto __)