一、什么是JavaScript?
一种编程语言,可以在网页上实现复杂的功能、交互等。是一种解释型语言,也是一种面向对象的语言。
ps:解释型语言,是在运行的时候将程序翻译成机器语言。解释型语言的程序不需要在运行前编译,在运行程序的时候才翻译,专门的解释器负责在每个语句执行的时候解释程序代码。这样解释型语言每执行一次就要翻译一次,效率比较低。
二、三种方式添加JavaScript
1.内部的JavaScript
在HTML文件中通过<script>添加
1
2
3<script> //Your JavaScript </script>
2.外部的JavaScript
通过src指向JavaScript文件添加
1<script src="script.js"></script>
3.内联JavaScript
1<button onclick="createParagraph()">Click me</button>
在createParagraph()事件里调用JavaScript
三、写JavaScript
1.数字
最简单的的方法就是在浏览器中f12打开console页面,在此页面中书写
2.字符串
以前文中的外部方式书写
html文件中的链接代码:
之后我们就可以在js文件中写程序了!
(1)alert();
1alert("Hello" + "world");
我们就可以看到浏览器弹出提示框
(2)console.log();
1console.log("hello".length);
我们可以再浏览器的console页面看到返回了5
另:
1
2
3console.log("hello".charAt(0)); //获得hello的第一个字符 console.log("Hello World".replace("Hello","Goodbye")); //用Goodbye替换Hello console.log("hello world".tuUpperCase()); //将全部字符串替换成大写
3.布尔值
true/false
另:
1
2
3&& //与 || //或 ! //非
4.变量
1
2
3
4
5var name = "DasAuto"; console.log(name); //在console界面输出name的值 let a = 1; console.log(a);
5.常量
1
2
3
4const Pi = 3.14; console.log(Pi); //正常输出Pi const Pi = 3.141; console.log(Pi); //报错Uncaught TypeError:Assignment to constant variable(赋值给了常量)
6.运算符
(1) 加减
1
2
3
4
5
6
7
8
9
10
11var x = 5; console.log(x); //5 x += 5; console.log(x); //10 x++; console.log(x); //11 x--; console.log(x); //10 a+=x; //a = a + x;
(2) 合并字符串
1
2
3
4
5
6
7
8
9
10var x; x = "3" + "4"; console.log(x); //34 x = "3" + 4 + 5; //字符串加上数字时,数字会被转换为字符串 console.log(x); //345 x = 3 + 4 + "5"; console.log(x); //75
(3)==与===
1
2
3
4
5
6
7console.log(123 == "123"); //true,==自动进行类型转换 console.log(123 ==="123"); //false,===没有自动类型转换功能 console.log(1 == true); //true console.log(1 === true); //false
7.语句结构
(1)if...else...
1
2
3
4
5
6if(){ } else{ }
(2)if...else if...else
1
2
3
4
5
6
7
8
9if(){ } else if(){ } else{ }
(3)while...do
1
2
3while(){ }
(4)do...while
1
2
3do{ }while()
(5)for循环
1
2
3for(let i = 0;i < 5;i++){ }
(6)三元操作符... ? ... : ...
1
2
3var age = 21; var allowed = (age >= 18) ? "Yes" : "No"; console.log(allowed); //Yes
(7) switch
1
2
3
4
5
6
7
8
9
10
11var name = "a"; switch(name){ case 'Simon': console.log("Simon"); break; case 'John': console.log("John"); break; default: console.log("Stranger"); }
8.作用域
1
2var a; //var没有作用域,a无论写在哪里,在哪里都可以被访问。而let和const都是有作用域的,所以尽量不要使用var
9.Object(对象)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15//创建 var obj = new Object(); //方法一 var obj2 = {}; //方法二 //定义 obj = { name:"Simon", age:"20", email:"simon@gmail.com", contact:{ phone:"1234567", Telegram:"@Simon" } } console.log(obj);
1
2
3
4
5
6
7
8
9console.log(obj.name); //Simon console.log(obj.contact.phone); //1234567 console.log(obj["contact"]["phone"]); //1234567 obj.age = 21; //修改已有的值 console.log(obj.age); //21 obj.contact.WeChat = "abcd"; //增添新的值 console.log(obj.contact);
10.数组
(1)创建与赋值
1
2
3
4
5
6
7//创建 var a = new Array(); //方法一 var b = []; //方法二 //赋值 a[0] = "dog"; console.log(a); //console.log(a.length);
(2)数组为空
1
2
3
4
5
6var a = new Array(); a[0] = "dog"; a[1] = "cat"; a[5] = "tiger"; console.log(a); //b = ["dog","cat","tiger"];
1console.log(a[2]); //undefined
(3)遍历数组
1
2
3
4
5
6
7
8//方法一,会出现undefined for(let i = 0;i < a.length;i++){ console.log(a[i]); } //方法二,不会出现undefined for(let i in a){ console.log(a[i]); }
(4)对数组的操作
1
2
3
4
5b.push("sheep"); //在末尾增加一个元素 b.pop(); //在末尾删除一个元素 b.reverse(); //将数组b倒叙 b.shift(); //删除开头第一个元素 b.unshift("lion"); //在开头添加第一个元素
更多操作:
Array - JavaScript | MDN
11.函数
1
2
3
4
5
6
7
8
9let a = 1; function add(x){ a+=x; } add(4); console.log(a);
12.arguments
1
2
3
4
5
6
7
8
9function add(){ let sum = 0; for(let i = 0,j = arguments.length;i < j;i++){ sum += arguments[i]; } return sum; } let sum = add(1,2,3,4,5,6,7,8,9,10); console.log(sum);
13.回调函数
传入一个函数B,被函数A使用。
一个复杂的functionC一般会由多个更简单的function组成,而这些简单fanction之间的关系可能是这样的:一个functionA能够表达的前提 是以 另一个functionB的完成为基础。那么functionB就叫回调函数,functionA叫高阶函数,functionC叫组合函数。
for example:functionC:穿新衣服参加婚礼,functionB:买新衣服&&有人举行婚礼,functionA:参加婚礼。functionB通过返回新衣服和婚礼,来提供fuctionA行动的前提。所以:functionB是functionA的回调函数。
14.闭包
函数A返回一个函数B。
1
2
3
4
5
6
7
8function makeAdder(a){ return function(b){ return a+b; } } var x = makeAdder(5); //x是一个方法 var sum = x(6); console.log(sum);
四、DOM
Document Object Model文本对象模型,是一个树状模型。
1.在浏览器的Console控制器下
(1)选择html element
有两种选择方法:
①用tag name选择
②用id/class选择
html代码如下
1
2
3
4
5<ul id = "sp-list"> <li class = "list">First</li> <li class = "list">Second</li> <li>Third</li> </ul>
如果想选中id为sp-list的ul下class为list的li,Console输入如下
1document.querySelectorAll("#sp-list li.list");
(2)更改样式
1document.querySelector("li").style.xxx;
具体选项可参考文档https://www.w3schools.com/jsref/dom_obj_style.asp
注:querySelector()只返回匹配的第一项
(3)将html element放到变量中
1
2
3var title = document.querySelector("h1"); //这样就可以直接操作变量来控制h1了 title.style.backgroundColor = "red";
(4)给元素添加或删除class
1
2document.querySelector("h1").classList.add("a"); document.querySelector("h1").classList.remove("a");
(5)实现点击按钮操纵事件
1
2
3
4document.querySelector("button").addEventListener("click",function(){ document.querySelector("h1").classList.toggle("title"); //执行一次给h1对象赋class值为title,再执行一次取消赋值 });
(6)更改与返回h1内容
1
2
3
4
5
6
7
8document.querySelector("h1").innerHTML = "GoodBye"; //返回"GoodBye" document.querySelector("h1").innerHTML = "</em>GoodBye</em>"; //返回"</em>GoodBye</em>" document.querySelector("h1").innerHTML; //返回"</em>GoodBye</em>" document.querySelector("h1").textContent; //返回"GoodBye"
(7)属性相关
1
2
3
4
5
6
7
8
9//查看属性 document.querySelector("li").attributes; //查看class属性 document.querySelector("li").getAttribute("class"); document.querySelector("li").attributes.class.value; //修改class属性 document.querySelector("li").attributes.class.value = "title"; document.querySelector("li").setAttribute("class","title");
学习更多:MDN DOM 文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Document_Object_Model/Introduction
最后
以上就是能干面包最近收集整理的关于【页面设计】03.JavaScript一、什么是JavaScript?二、三种方式添加JavaScript三、写JavaScript的全部内容,更多相关【页面设计】03内容请搜索靠谱客的其他文章。
发表评论 取消回复