一、 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]+"&emsp;");

}

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)
historyHistory
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(四)的更多相关文章

  1. 前端基础------JS

    JS中的语句要以分号 ;  为结束符. JS语言基础: 1, JS 的变量名可以使用 下划线, 数字, 字母, $ 组成. 不可以是数字开头 2, 声明变量使用var 变量名. 的格式来进行声明. v ...

  2. 前端基础——js数据类型及判断方法

    一.数据类型 我们通常熟知的数据类型有六种,包括5种基本数据类型(Number, String, Boolean, Undefined, Null)和一种引用数据类型(Object).ES6又新增了一 ...

  3. 前端基础面试题(JS部分)

    1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String 值类型:数值.布尔值.null.und ...

  4. 进击的Python【第十四章】:Web前端基础之Javascript

    进击的Python[第十四章]:Web前端基础之Javascript 一.javascript是什么 JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编 ...

  5. BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js

    BAT 前端开发面经 —— 吐血总结   目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...

  6. 前端第四篇---前端基础之jQuery

    前端第四篇---前端基础之jQuery 一.jQuery介绍 二.jQuery对象 三.jQuery基础语法 四.事件 五.动画效果 六.补充each 一.jQuery简介 1.jQuery介绍 jQ ...

  7. 前端基础面试题(js部分)

      前端基础面试题(JS部分)   1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String值类 ...

  8. Web前端-Vue.js必备框架(四)

    Web前端-Vue.js必备框架(四) 计算属性: <div id="aaa"> {{ message.split('').reverse().join('') }} ...

  9. JS BOM DOM对象 select联动 计时器 时间 css操作 节点(标签 ) 查找标签 {前端基础之BOM和DOM}

    前端基础之BOM和DOM 前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我 ...

随机推荐

  1. 13:Linux虚拟机网络连接异常

    这两个服务需要启动

  2. .Net RabbitMQ实战指南——HTTP API接口调用

    RabbitMQ Management插件还提供了基于RESTful风格的HTTP API接口来方便调用.一共涉及4种HTTP方法:GET.PUT.DELETE和POST.GET方法一般用来获取如集群 ...

  3. 彻底解决Spring mvc中时间类型的转换和序列化问题

    在使用Spring mvc 进行开发时我们经常遇到前端传来的某种格式的时间字符串无法用java8时间包下的具体类型参数来直接接收.同时还有一系列的序列化 .反序列化问题,在返回前端带时间类型的同样会出 ...

  4. c++性能测试工具:google benchmark进阶(一)

    这是c++性能测试工具教程的第四篇文章,从本篇开始我将逐步介绍一些性能测试的高级技巧. 前三篇教程可以看这里: c++性能测试工具:google benchmark入门(一) c++性能测试工具:go ...

  5. Android系统编程入门系列之应用初始化Application

    在上一篇文章中我们了解到Android系统启动应用的时候,会首先加载AndroidManifest.xml清单文件中的一系列信息,在清单文件中如果不指定<application></ ...

  6. MySQL数据库性能优化与监控实战(阶段四)

    MySQL数据库性能优化与监控实战(阶段四) 作者 刘畅 时间 2020-10-20 目录 1 sys数据库 1 2 系统变量 1 3 性能优化 1 3.1 硬件层 1 3.2 系统层 1 3.3 软 ...

  7. 无向图(邻接表实现)DFS_AND_BFS

    数据结构选择TreeSet的原因:通过自定义的Compare方法,保证了点元素的唯一性,有序性(方便检验): 传入Set和Map中的元素类似于C中的指针操作,即共享地址,改变其中一个中的元素,与之相关 ...

  8. Flask(8)- jinja2 模板入门

    前言 之前的文章有个栗子,视图函数可以直接返回一段 html 代码,浏览器可以自动渲染 但是当你的 HTML 非常复杂的话,也要整串写在代码里面吗,这显然不合理的,可阅读性也非常差 所以,就诞生了 J ...

  9. 资源:Postgresql数据库下载路径

    postgresql下载路径: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

  10. Docker:docker国内镜像加速

    创建或修改 /etc/docker/daemon.json 文件,修改为如下形式 { "registry-mirrors": [ "https://registry.do ...