前端三剑客的大哥捏
1.关于JavaScript
1.JavaScript是什么?
HTML 定义了网页的内容
CSS 描述了网页的布局
JavaScript 控制了网页的行为
浏览器不会执行js,通过js解释器
js的引入有三种 行内式的内嵌式
输入输出语句
1 2 3 4 5 6 7 8 JavaScript 显示数据JavaScript 可以通过不同的方式来输出数据:使用 window .alert () 弹出警告框。 使用 document .write () 方法将内容写到 HTML 文档中。 使用 innerHTML 写入到 HTML 元素。 使用 console .log () 写入到浏览器的控制台。
字面量和变量
js是一种弱类型或者动态的语言,不用提前声明类型,类型被自动确定
数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。
1 isNaN来判断是否为非数字,并返回一个值 如果是数字返回false,反之true
字符串(String)字面量 可以使用单引号或双引号:表达式字面量 用于计算:
数组(Array)字面量 定义一个数组:
[40, 100, 1, 5, 25, 10]
对象(Object)字面量 定义一个对象:
{firstName:“John”, lastName:“Doe”, age:50, eyeColor:“blue”}
函数(Function)字面量 定义一个函数:
function myFunction(a, b) { return a * b;}
在编程语言中,变量用于存储数据值。
JavaScript 使用关键字 var 来定义变量, 使用等号来为变量赋值:
JavaScript 数据类型
JavaScript 有多种数据类型:数字,字符串,数组,对象等等:
1 2 3 4 5 var length = 16; // Number 通过数字字面量赋值 var points = x * 10; // Number 通过表达式字面量赋值 var lastName = "Johnson"; // String 通过字符串字面量赋值 var cars = ["Saab", "Volvo", "BMW"]; // Array 通过数组字面量赋值 var person = {firstName:"John", lastName:"Doe"}; // Object 通过对象字面量赋值
var cars = new Array();
cars[0] = “Saab”;
cars[1] = “Volvo”;
cars[2] = “BMW”;
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:
var person={firstname:“John”, lastname:“Doe”, id:5566};
上面例子中的对象 (person) 有三个属性:firstname、lastname 以及 id。
var person={
firstname : “John”,
lastname : “Doe”,
id : 5566
};
1 2 3 4 5 6 7 8 var person= { firstname : "John", lastname : "Doe", id : 5566 }; document.write(person.lastname + "<br>"); document.write(person["lastname"] + "<br>");
语句
描述
break
用于跳出循环。
catch
语句块,在 try 语句块执行出错时执行 catch 语句块。
continue
跳过循环中的一个迭代。
do … while
执行一个语句块,在条件语句为 true 时继续执行该语句块。
for
在条件语句为 true 时,可以将代码块执行指定的次数。
for … in
用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
function
定义一个函数
if … else
用于基于不同的条件来执行不同的动作。
return
退出函数
switch
用于基于不同的条件来执行不同的动作。
throw
抛出(生成)错误 。
try
实现错误处理,与 catch 一同使用。
var
声明一个变量。
while
当条件语句为 true 时,执行语句块。
值类型(基本类型) :字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型(对象类型) :对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。
函数
匿名函数
1 2 3 var fun =funtion(){ console.log("hello world"); }
声明函数
一次声明多次使用 形参和实参 返回值
匿名函数
1 2 3 4 5 setInterval (function ( ){ console .log ("hello" ) },100 ) setInterval 重复使用
函数表达式
1 2 3 4 5 const fun=funtion (n,m ){return n+m;} let result=fun (11 ,33 );console .log (result);
方法
1 2 3 4 5 6 7 8 9 10 11 const cat={ name :"xiaosong" , sayName :funtion ( ){ console .log (this .name ); } sayName ( ){ console .log (this .name ); } }
箭头函数
1 2 3 4 5 const fun = (x ) => { return x * x; } const fun = (x ) => x * x;
面向对象
prototype ES5
继承关系
ES6继承
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <script> class Animal { constructor (name, age ) { this .name = name; this .age = age; } sayName ( ) { console .log (`我是${this .name} ` ) } } class Dog extends Animal { } let dog = new Dog ("旺财" ); dog.sayName (); </script>
创建方法
1利用对象字面量创建对象
1 2 3 4 5 6 7 8 9 var obj-{uname : "songyuran" ,age : 18 ,sayhi : funtion ( ){console .log ("log" );} }
利用new object创建对象
1 2 3 4 var obj=new Object(); obj,uname='songyiran';
构造函数
因为一上只能创建一个对象,有了构造函数可以让相同的属性和方法抽象出来封装出来到函数里面
1 2 3 4 5 6 funtion Star(uname,age,sex){ this.name=uname; this.age=age; this,sex=sex; } var ldh=new Star("songyuran",18,'nan');
遍历对象
1 2 3 4 for(var k in obj){ console.log(k); console.log(obj[k]); }
数组
遍历
while for forin forof map
map
push方法
pop
1 2 3 4 5 6 7 8 9 10 11 12 13 var a = ["a" , "b" , "c" , "d" ];a.pop (); a.push ("E" ); a.sort () console .log (a);var b = [1 , 24 , 5 , 6 , 78 ]var newList = list.filter (function (item ) { if (item > 3 ) { return item; } }); console .log (newList);
内置对象
Math
1 random()*(max-min+1 )+min
date
正则表达式
1 2 3 var str="123" ;var reg=/123/ ;var result=reg.test (str);
ES6
变量
1 2 3 4 5 6 7 let变量 块级作用域 不存在变量提升 不允许重复声明
常量
1 2 3 4 5 6 7 8 9 1.const定义常量 2.定义后不能修改 3.不变的 模板字符串 let year = '2020'; let mouth = '10'; let date = '11'; let result = `${year}年${mouth}月${date}日`; console.log(result);
DOM
元素节点 属性节点 文本节点
DOM树
获取元素
获取ID
1 2 3 4 getElementByld() get element by id console.dir打印返回的元素对象,更好查看里面的属性和方法
根据标签名
1 2 getElementByTagName element.getElementByTagName
根据类名
返回指定选择器第一个元素对象
返回指定所有的选择器所以元素对象
获取特殊元素body
html
事件基础
事件源 事件类型 事件处理程序 三要素
1 2 3 4 5 var btn =document.getElemnent.byId('btn') btn.onclick =funtion(){ alert("hello world") }
修改元素
DOM
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <meta http-equiv ="X-UA-Compatible" content ="IE=edge" > <meta name ="viewport" content ="width=device-width, initial-scale=1.0" > <title > Document</title > <style > .swiper { width : 640px ; height : 320px ; overflow : hidden; position : relative; } .images-container { width : 1920px ; height : 320px ; display : flex; transition : transform 0.9s ; } .images-container img { width : 640px ; height : 320px ; } .number-list { position : absolute; bottom : 0 ; } </style > </head > <body > <div class ="swiper" > <div class ="images-container" > <img src ="20220710232803.png" alt ="" > <img src ="20220710232826.png" alt ="" > <img src ="20220710232832.png" alt ="" > </div > <div class ="number-list" > <button > 1</button > <button > 2</button > <button > 3</button > </div > </div > <script > let btnList = document .querySelectorAll (".number-list button" ); let container = document .querySelector (".image-container" ); for (let i in btnList) { btnList[i].onclick = function ( ) { container.style .transform = `translate(-555px)` ; } } </script > </body > </html >
DOM操作
1 2 3 4 5 在ui里添加li ul.innerHtml=` <li></li> <li></li> `
节点操作
i>
`