橙色 漏写
Day1
一、window对象
1、代替了ES中的global,充当全局对象–保存全局变量和全局函数
2、自己也带有一些属性和方法,指代当前窗口本身
网页打开新链接的方式: 1、替换当前页面,可以后退 HTML: <a href="url">内容</a> JS: open("url","_self"); 2、替换当前页面,不能后退 JS: location.replace("新url") 3、新窗口打开,可以打开多个 HTML: <a href="url" target="_blank">内容</a> JS: open("url","_blank"); 4、新窗口打开,只能打开一个 HTML: <a href="url" target="自定义name">内容</a> JS: open("url","自定义的name");
扩展a标签的作用:
1、跳转
2、锚点
3、下载: <a href="xx.exe/zip/rar/7z">内容</a>
4、打开: <a href="xx.图片后缀/txt">内容</a>
5、直接书写js: <a href="javascript:js代码;">内容</a>
3、window属性:
获取浏览器的完整大小: outerWidth/outerHeight;
获取浏览器的文档显示区域的大小: innerWidth/innerHeight
获取屏幕的完整大小: screen.width/height;
方法:
1、打开窗口: var newWindow=open("url","自定义的name","width=,height=,left=,top=");
2、关闭窗口: window/newW.close();
3、修改窗口的大小: newW.resizeTo(new宽,new高);
4、修改窗口的位置:newW.moveTo(x,y)
Day2
一、BOM的其他对象
1.1 history对象
前进:history.go(n);
后退:history.go(-n);
刷新:history.go(0);
1.2 navigator对象
属性: navigator.userAgent;得到浏览器以及版本号
1.3 location对象
-
url网址组成
协议名: https、http、ftp、ws(直播) ... 域名/主机号 端口号:默认端口可以省略不写,https默认端口为443,http默认端口为80 文件的相对路径/路由 查询字符串/请求消息 协议名:location.protocal 域名:location.hostname 端口号:location.port 路由: location.pathname 请求消息:location.search
1.4 event对象
-
在HTML页面上绑定事件
<elem on事件名="js语句"></elem>
-
在js中使用元素的事件处理函数属性:
elem.on事件名=function(){ 操作 }
-
使用专门的事件API绑定事件
主流:elem.addEventListener("事件名",callback); 老IE: elem.attachEvent("on事件名",callback);
2 事件周期
-
主流
1、捕获阶段 2、目标元素优先触发 3、冒泡触发
-
老IE:没有捕获阶段
3 获取事件对象event
-
兼容: var e=event;
-
阻止冒泡
兼容: e.cancelBubble=true;
3、事件委托
兼容: e.srcElement;
4、阻止浏览器的默认行为
兼容: e.returnValue=false;
5、获取键盘的键码
e.keyCode;
Day3
一、Node.js概述
node.js就是一个运行环境而已,不再需要浏览器自带的js解释器了,nodejs的语法和javascript的语法非常相似
二、Node.js如何运行
1、交互模式 - 临时测试
打开cmd输入,node回车
退出:ctrl+c
2、脚本/文件模式 - 正式开发中
1、创建xx.js:里面书写自己的代码
2、打开cmd输入:node 文件绝对路径
3、直接在开发工具中运行
三、Node.js知识
5.1 js 和 node的区别
相同点:都可以使用一切的ECMAScript的一切的API和语法都可以放心大胆的使用,服务器端根本不存在任何浏览器,所以一切语法放心用 不同点:1、javascript:DOM+BOM - 做一切特效 2、Node.js:虽然不支持DOM+BOM,但是他却提供了10万个以上+的模块
5.2模块
-
-
公开/暴露自己的成员:
exports.属性名=值 exports.方法名=function(){} module.exports={...}
2、引入其他模块:
var xxx=require("./文件名");
笔试题:exports和module.exports有什么区别?
都是用于公开暴露自己的成员的 但是:exports=写法是错误的,为什么? node.js的底层有一句话:exports=module.exports;}
其实真正做公开功能的是module.exports
如果你使用 exports=覆盖了module.exports,不再具有公开功能
-
5.3 模块的分类
1. 官方模块
某的模块需要引入,某的模块不用引入
-
Globals模块:
__dirname 当前文件夹的完整绝对路径 __filename 当前文件完整的绝对路径 exports 一个空{},公开和暴露自己的成员 module 指代当前模块本身,包含了其他4个变量 require() 一个函数,引入其他模块的 定时器 控制台
-
Querystring模块:查询字符串
需要引入:let qs=require('querystring'); 提供了解析url的查询字符串部分的功能 var obj=qs.parse("查询字符串部分");
-
Url模块:网址模块
需要引入: let url = require('url'); var objUrl=url.parse("完整的url网址",true);
-
Buffer模块:
-
fs模块:
需要引入: let fs = require('fs'); 异步读取文件: fs.readFile("文件路径",(err,buf)= >{ }) 异步写入文件: fs.writeFile("绝对路径|文件路径","写入的新内容",()=>{ }) 异步追加文件: fs.appendFile("绝对路径|文件路径","追加的新内容",()=>{ })
-
http模块
固定步骤: //引入http、url、fs官方模块 var http=require("http"); var url=require("url"); var fs=require("fs"); //创建服务器 var app=http.createServer(); //为服务器设置监听的端口号 app.listen(80);//http默认端口为80,https默认端口为443 //为服务器绑定请求事件 - 请求?前端发到后端的, app.on("request",(req,res)=>{ //req - request:保存请求对象,请求对象,前端->后端,提供了一个属性req.url,解析此属性拿到自己需要的部分(路由|请求消息) var objUrl=url.parse(req.url,true); //得到前端传来路由部分 var router=objUrl.pathname; //判断前端的路由是什么,给他返回不同的页面 if(router=="/" || router=="/index.html"){ //res - response:保存响应对象,后端->前端,提供了一个方法res.end(你想要响应的东西) fs.readFile("./public/index.html",(err,buf)=>{ res.end(buf); }) }else if(router.match(/html/)!=null){ console.log(router); fs.readFile("./public"+router,(err,buf)=>{ res.end(buf); }) }else if(router.match(/css|js|jpg|png|gif|woff/)!=null){ fs.readFile("./public"+router,(err,buf)=>{ res.end(buf); }) } })
2. 第三方模块
npm下载
3. 自定义模块
-
文件模块
-
目录模块
1、创建名为m1的文件夹,在其中创建index.js的文件,去需要公开的内容,主模块想要引入必须写为require("./文件夹的名字") 2、创建名为m2的文件夹,在其中创建xx.js的文件,去需要公开的内容,主模块想要引入必须写为require("./文件夹的名字"),但是需要在m2文件夹中,在创建一个必须package.json的配置文件,写{"main":"xx.js"} 3、创建一个必须名为node_modules的文件夹,在其中创建名为m3的文件夹,在其中创建index/xx.js的文件,去需要公开的内容,主模块想要引入必须写为require("文件夹的名字")
Day4
一、数据
数据库产品 - 放着很多很多和网站相关的数据 关系型数据库 - 以表格为主 Oracle - Oracle MySQL - Oracle sql server 非关系型数据库 - 没有固定的格式 mongoDB,以JSON数据格式为主