前端基础js(四)
一、 js
【1】 html:用于显示页面
【2】 css:用于描述页面的样式
【3】 javaScript:用于描述页面的行为
二、js中三大部分内容
【1】 基本语法:函数、对象、事件类型(变量,数据类型,分支结构,循环,打印输出,函数)
【2】 BOM:浏览器对象模型Brower Object Model
【3】 DOM:文档对象模型 Document Object Model
三、js的使用方式
【1】 在事件名后直接写js代表 onclick事件:单击事件
<input type="button" id="test1" value="test1" onclick="alert('第一种方式')" />
【2】 写在<script></script>中:页面加载 onLoad()事件
<script type="text/javascript"> alert("第二种方式"); </script>
【3】 引入外部js文件
(1) 新建 一个以.js结尾的文件
(2) 在html中使用
<script src="js/base_js.js" type="text/javascript" charset="utf-8"></script>
四、js中的数据类型
js 中的变量是没有数据类型的 统一使用var声明
js中的值是有数据类型的
js中值的数据类型分两大类
4.1基本数据类型:
number:数值型 ,整数或浮点数
string:字符型 ,可以使用单引号,也可以使用双引号
boolean :布尔型, 值可以为true或false
undefined: 未定义 :可声明未赋值
null值: 声明变量赋值为null 类型是object,值是null
Infinity值:无穷 10/0
4.2引用(对象)数据类型
Array ,Date,String,自定义对象
4.3 数据类型的转换
4.3.1自动类型转换
function test2(){ var numa=3; var numb='4'; var numc=true; var numd=9; //alert(numa+numb); //number+string-->string //alert(numa+numc);//number+boolean-->number 4 true的值是1 ,false的值为0 //alert(numb+numc);//string+boolean-->string alert(numa+numd);//number+number-->number }
4.3.2强制类型转换
alert(numa+parseInt(numb)); parseFloat(numb) alert(parseInt('4fd4')); //如果第一个字符是数字,将转数字部分,第一个字符非数字,将出现NaN
五、运算符
【1】 == 比较值 var nume; //undefined var numf=null;//null alert(nume==numf);//true 【2】=== 比较类型和值
算术运算符
逻辑运算符
赋值运算符
关系运算符
连接运算符:+
六、获取文本框的值
//1.获取第一个文本框的值
var numa=document.getElementById("numa").value;//get是获取Element元素 by根据...
//2.获取第二个文本框的值
var numb=document.getElementById("numb").value;
//3.获取运算符
var ope=document.getElementById("oper").value;
//获取div
var divEle=document.getElementById('result');//获取的是div元素 divEle.innerHTML='运算结果是:'+result;
七、 js中的数组对象
数组的声明
var a=[]; //声明数组的第一种方式 var arr1=new Array(); //创建数组第二种方式 var arr2=new Array(4); //创建数组的第三种方式 var arr3=new Array('a','b',true,2,9);//创建数组的第四种方式 for(var i=0;i<arr3.length;i++){ document.write(arr3[i]+" "); }
js中的二维数组
var cityList=new Array(); cityList['河北省']=['石家庄市','邯郸市']; cityList['北京市']=['昌平区','海淀区']; alert(cityList['河北省']); //cityList['河北省'],下标是 '河北省' /*for(var i=0;i<cityList.length;i++){ alert(cityList[i]); 因为下标是字符串, }*/ for(var i in cityList['河北省']){ //相当于java中加强for循环 alert(i); }
八、js中的输出方式
//[1]第一种输出方式
var divEle=document.getElementById("div1");
divEle.innerHTML='hellow';
//[2]第二种输出方式
document.write('javascrip');
九、 js中的函数
9.1 系统内置函数
isNaN(), parseInt (), parseFloat()
系统内置的定时器函数
window.setInterval('test1()',1000);//一秒钟调用一次test1()函数
9.2 自定义函数
//[1]第一种方式 -->最常使用的方式
function test1(){
alert("第一种方式");
}
//[2]最不常用的方式
var test2=new Function("alert('第二种方式')"); //使用关键字new,说明函数是对象alert('第二种方式')是test2函数中函数体 //[3]创建函数
var test3=function (){
alert('第三种方式,匿名函数');
}
//[4]js中的带参的函数 ,函数的定义处参数称为形式参数
//注意事项:js中实参的个数和形参的个数可以不相同
function test4(numa,numb){
alert("实参的个数为:"+test4.arguments.length);
alert("形参的个数:"+test4.length);
alert(numa+numb);
}
function test4(){
alert('无参');
}
//在js中没有函数重载的概念,后面的声明的同名的函数,会将前边声明的函数进行覆盖 //[5]函数调用函数
function test5(m,n){
m(n); //函数调用,调用带一个参数的函数
}
function test6(num){
alert(num);
return 'hellow';使用return返回函数的返回值
} html代码
<input type="button" id="" value="test5" onclick="test5(test6,4);"/><!--test6叫函数的名称-->
<input type="button" id="" value="test2" onclick="alert(test6(8));"/><!--弹出test6的函数的返回值 -->
十、 js中的对象
10.1系统内置对象
(1) Date对象
function test1(){
var d=new Date();//得到了一个时间对象
var year=d.getFullYear();
//var year2=d.getYear();得到是2017与1900之间的时间差
var month=d.getMonth()+1;//得到是0-11之间的整数 var date=d.getDate(); //日期
var day=d.getDay(); //得到的是星期几 var hour=d.getHours();//得到小时 var min=d.getMinutes();//分钟 var sec=d.getSeconds(); var divEle=document.getElementById("div1");
divEle.innerHTML=year+"年"+month+"月"+date+"日"+hour+":"+min+":"+sec; }
(2) String对象
alert(str.substring(2,6)); //截取索引为2到索引为5的字符
alert(str.substr(2,6)); //从2开始,一共截取6个字符
(3) Math对象
var str=Math.random()*8999+1000;//对象名.函数名
var num=Math.floor(str);
10.2 自定义对象
function testObject(){
var per1=new Object();
per1.name='张三';
per1.age=30;
//匿名函数
per1.show=function(){
alert('姓名是:'+per1.name+"\t"+per1.age);
} per1.show(); //调用函数
}
十一、js中的事件
<input type="button" id="" value="鼠标单击" onclick="alert('被单击了')" />
<input type="button" name="" id="" value="鼠标双击" ondblclick="alert('被双击了')" />
<div id="div1" onmouseover="alert('鼠标移动到了div上')" onmouseout="alert('鼠标移出了')">
</div>
<hr />
<input type="text" id="" value="张三" onfocus="alert('文本框获得了焦点')" onblur="alert('文本框失去了焦点')"/>
<hr />
<input type="text" id="" value="李四" onchange="test1(this);"/>
<div id="div2"></div>
<input type="text" name="" id="" value="" onkeydown="alert(this.value);" />
<select name="" onchange="alert(this.value);">
<option value="北京市">北京市</option>
<option value="上海市">上海市</option>
<option value="重庆市">重庆市</option>
</select>
鼠标类
onclick(单击事件) , ondblclick(双击事件) , onmouseover(鼠标移入), onmouseout(鼠标移出) , onblur(失去焦点), onfocus(获得焦点), onchange(文本改变)
键盘类
onkeydown(键盘按下), onkeyup(键盘松开) 表单类
onsubmit (表单提交) return true 允许提交 return false不允许提交
onreset(表单重置) return true 允许重置 return false不允许重置 页面: onload (页面加载) 事件对象 Event function change(eve){
var e=eve||window.event;
var x=e.x||e.pageX;
var y=e.y||e.pageY;
}
<input type="button" id="" value="事件对象" onmousemove="change(event);" />
十二、BOM:浏览器对象模型
BOM:浏览器对象模型
(Window,Navigater,Screen,History,Location)
historyHistory
document
location Location
window:对象
常用方法: alert();警告框
confirm();确认框 确定true,取消false
prompt();对话框 3秒后执行alert(),执行一次
window.setTimeout("alert('hello')",3000); //3秒后执行alert方法
每隔1秒执行一次alert()
window.setInterval("alert('helloworld')",1000);
close();关闭窗口
open();打开窗口
常用属性:
(1) history历史记录
function backd(){//后退
//window.history.back();
window.history.go(-1);//后退一步
}
function next(){//前进
//window.history.forward();
window.history.go(1);//前进一步
window.history.go(0); // 刷新本页面
}
(2) location:用于获取url相关信息
十三、DOM文档对象模型
DOM:Document ObejctModel文档对象模型
document:每个载入浏览器窗口的html页面都称为一个document对象
12.1 使用document文档对象中的方法来获取文档中的元素
//[1]根据id来获取文档中的元素
function testId(){
var divEle=document.getElementById('div1'); //object HTMLDivElement
alert(divEle);
}
//[2]根据name来获取文档中的元素 --》获取一组
function testName(){
var fruits=document.getElementsByName('fruit');
alert(fruits.length);
}
//根据标签名称获取文档中的元素-->获取一组
function testTag(){
var inputs=document.getElementsByTagName('input');
alert(inputs.length); //获取了8个input元素
}
//根据class名称获取文档中的元素-->一组
function testClassName(){
var b=document.getElementsByClassName('b_1');
alert(b.length);
}
12.2 操作文档中的元素
12.2.1属性
function changeImge(){
//获取img元素
var imgEle=document.getElementById('imgid');
//imgEle.src='img/class1-2.jpg'; //操作src属性
var srcAtt=imgEle.getAttribute('src'); //src是属性 ,获取的是属性值
//alert(srcAtt);
imgEle.setAttribute('src','img/class1-2.jpg'); //设置 图片的title属性值
//imgEle.setAttribute('title','这是一个广告图片');
imgEle.title='这是一个广告图片........';
}
语法
(1)元素对象名称.属性=‘值’
(2)元素对象名称.setAttribute(‘属性名’,’属性值’);
元素对象名称.getAttribute(‘属性名’);对应的值
12.2.2样式
function testStyle(){
//给div边框改颜色
//获取div
var divEle=document.getElementById('div1');
//改变样式
divEle.style.border='2px dashed green'; //solid 实线 dashed 虚线
divEle.style.display='none'; //不显示 -->不占浏览器空间
divEle.style.visibility='hidden'; //隐藏 ,占浏览器空间
}
语法:元素对象名称.style.属性=’值’;
.bac{
background: #ccc;
}
divEle.className='bac'; //bac是class选择器的名称 语法:元素对象名称.className=’类样式的名称’;
12.2.3 内容
function testcontent(){
//获取第一个数
var numA=window.prompt('请输入第一个数:','');
var numB=window.prompt('请输入第二个数:','');
var result=parseInt(numA)+parseInt(numB);
//将计算结果显示到div中
var divEle=document.getElementById("div1");
//divEle.innerHTML='<h1>计算结果为:'+result+"</h1>";
divEle.innerText='<h1>计算结果为:'+result+'</h1>';
}
区别:innerHTML可以解析html标签
innerText :将所有””或’’中的内容通通作为文本显示
12.2.4 文档结构
[1]创建文档元素 createElement (‘标签名称’);
[2]元素添加到文档中 appendChild( 元素);
[3]从文档中删除元素 removeChild(元素);
[4]获取父元素 parentElement;
获取第一个子元素 firstElementChild
获取最后一个子元素 lastElementChild
案例:文件上传
function createE(){
//[1]创建一个input元素, 类型是file
var fileEle=document.createElement('input');
fileEle.type='file';
//[2]创建一个br元素
var brEle=document.createElement('br'); //[3]创建一个input元素, 类型是button
var btnEle=document.createElement('input');
btnEle.value='删除';
btnEle.type='button';
btnEle.onclick=function(){
document.body.removeChild(fileEle);
document.body.removeChild(btnEle);
document.body.removeChild(brEle);
} document.body.appendChild(brEle);
document.body.appendChild(fileEle);
document.body.appendChild(btnEle);
}
前端基础js(四)的更多相关文章
- 前端基础------JS
JS中的语句要以分号 ; 为结束符. JS语言基础: 1, JS 的变量名可以使用 下划线, 数字, 字母, $ 组成. 不可以是数字开头 2, 声明变量使用var 变量名. 的格式来进行声明. v ...
- 前端基础——js数据类型及判断方法
一.数据类型 我们通常熟知的数据类型有六种,包括5种基本数据类型(Number, String, Boolean, Undefined, Null)和一种引用数据类型(Object).ES6又新增了一 ...
- 前端基础面试题(JS部分)
1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String 值类型:数值.布尔值.null.und ...
- 进击的Python【第十四章】:Web前端基础之Javascript
进击的Python[第十四章]:Web前端基础之Javascript 一.javascript是什么 JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编 ...
- BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js
BAT 前端开发面经 —— 吐血总结 目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...
- 前端第四篇---前端基础之jQuery
前端第四篇---前端基础之jQuery 一.jQuery介绍 二.jQuery对象 三.jQuery基础语法 四.事件 五.动画效果 六.补充each 一.jQuery简介 1.jQuery介绍 jQ ...
- 前端基础面试题(js部分)
前端基础面试题(JS部分) 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String值类 ...
- Web前端-Vue.js必备框架(四)
Web前端-Vue.js必备框架(四) 计算属性: <div id="aaa"> {{ message.split('').reverse().join('') }} ...
- JS BOM DOM对象 select联动 计时器 时间 css操作 节点(标签 ) 查找标签 {前端基础之BOM和DOM}
前端基础之BOM和DOM 前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我 ...
随机推荐
- 13:Linux虚拟机网络连接异常
这两个服务需要启动
- .Net RabbitMQ实战指南——HTTP API接口调用
RabbitMQ Management插件还提供了基于RESTful风格的HTTP API接口来方便调用.一共涉及4种HTTP方法:GET.PUT.DELETE和POST.GET方法一般用来获取如集群 ...
- 彻底解决Spring mvc中时间类型的转换和序列化问题
在使用Spring mvc 进行开发时我们经常遇到前端传来的某种格式的时间字符串无法用java8时间包下的具体类型参数来直接接收.同时还有一系列的序列化 .反序列化问题,在返回前端带时间类型的同样会出 ...
- c++性能测试工具:google benchmark进阶(一)
这是c++性能测试工具教程的第四篇文章,从本篇开始我将逐步介绍一些性能测试的高级技巧. 前三篇教程可以看这里: c++性能测试工具:google benchmark入门(一) c++性能测试工具:go ...
- Android系统编程入门系列之应用初始化Application
在上一篇文章中我们了解到Android系统启动应用的时候,会首先加载AndroidManifest.xml清单文件中的一系列信息,在清单文件中如果不指定<application></ ...
- MySQL数据库性能优化与监控实战(阶段四)
MySQL数据库性能优化与监控实战(阶段四) 作者 刘畅 时间 2020-10-20 目录 1 sys数据库 1 2 系统变量 1 3 性能优化 1 3.1 硬件层 1 3.2 系统层 1 3.3 软 ...
- 无向图(邻接表实现)DFS_AND_BFS
数据结构选择TreeSet的原因:通过自定义的Compare方法,保证了点元素的唯一性,有序性(方便检验): 传入Set和Map中的元素类似于C中的指针操作,即共享地址,改变其中一个中的元素,与之相关 ...
- Flask(8)- jinja2 模板入门
前言 之前的文章有个栗子,视图函数可以直接返回一段 html 代码,浏览器可以自动渲染 但是当你的 HTML 非常复杂的话,也要整串写在代码里面吗,这显然不合理的,可阅读性也非常差 所以,就诞生了 J ...
- 资源:Postgresql数据库下载路径
postgresql下载路径: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
- Docker:docker国内镜像加速
创建或修改 /etc/docker/daemon.json 文件,修改为如下形式 { "registry-mirrors": [ "https://registry.do ...