html(结构)+css(美化)+javascript(行为)=DHTML(动态html)
前端框架:JQuery 让我们写javascript更省力
BootStrap 让我们写界面更省力
Vue 让前后端分离
二期的javaweb 前+后 不分离
1.JavaScript简介
- 一门客户端脚本语言
客户端:
1.客户端/服务器端(C/S)tcp/udp :QQ、微信、navicat......
2.浏览器/服务器端(B/S)
运行在客户端浏览器。每个浏览器都有JavaScript的解析引擎
脚本语言不要编译,直接可以被浏览器解析执行
搭建简易的功能网页html+css+js+node.js+mysql就可以了
Netscape(网景)开发的JavaScript,做浏览器的公司,现在没了
JavaScript=ECMAScript+文档对象模型DOM+浏览器对象模型BOM
2.ECMAScript
2.1 如何使用
1.内部js
<head> <script> //js代码 </script> </head> <body> <script> //js代码 </script> </body>
js会按照文档的上下顺序,依次执行
2.外部js
创建一个js文件(index.js)--->内部引用js文件 (>)
内部js和外部js不要写在同一个
方式二:Object实际上由无序的名值对(类似JavaMap)组成的
2.4 运算符
1.一元运算符:+
将a由string变为number
var a = "10";
var b = +a;
console.log(typeof(b));---->number
2.关系运算符
== 比较值
=== 比值&比类型
判断空串:
//java
str=" ";
if(str.trim().length==0){
console.log("空串");
}
//js
if(!str.trim()){
console.log("空串");
}
2.5 流程控制
1.循环语句
- do...while
- while
- for
- for...in
function createFruit(){ //1.构建一个水果的数组 var fruits=["西瓜","橙子","香蕉","苹果","芒果"]; //2.循环打印水果 document.write("<ul>"); for(var i in fruits){ //i 代表依然是数组的下标,和Java代表元素不同 document.write(fruits[i]+"<br/>"); } document.write("</ul>"); }
- break
- continue
2.6 函数
示例:
function name(arg0,arg1...argN){ //方法体 } //执行函数 name();
参数:
//ECMAScript函数不介意传递进来多少个参数,也不在乎参数是什么类型. function sayHi(){ alert("hello"+arguments[0]+","+arguments[1]); } sayHi("phenix"); sayHi("JavaScript","see you later"); sayHi("boy","girl","sunshine"); //没有返回类型,但是可以返回 function add(a,b){ return a+b; //return 后面的方法永远不会执行 console.log("永远不会执行"); } console.log(add(10));--->NaN console.log(add(10,20));--->30 console.log(add());--->NaN ------------------------------ function add(a,b){ //查看参数值,默认对象arguments for(var i in arguments){ console.log("参数:"+i+"值:"+arguments[i]+","+typeof(i)); } //boolean:false/0/null/"" a = a||0;//当a不为null,用户传值,就取a,没有传值就给0 b = b||0; return a+b; //return 后面的方法永远不会执行 console.log("永远不会执行"); } console.log(add(10));--->10 console.log(add(10,20));--->30 console.log(add());--->0