一、 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. 我进金山wps啦!

    成功进入金山wps暑期精英训练营,希望能够学到很多知识,写这篇文章纪念一下

  2. Java接口以及匿名内部类,静态代码块

    接口 接口中只能定义public并且是final的公共静态常量,不允许定义变量. 抽象类可以定义抽象方法和非抽象方法,接口中只能定义公共的,抽象的实例方法. 接口只能由其他接口实现继承 子接口继承的目 ...

  3. Binding(一):数据绑定

    这节开始分几期来讲一下WPF中Binding的相关用法,本节主要讲使用Binding进行数据绑定. Binding的作用 在WinForm中,我们要想对控件赋值,需要在后台代码中拿到控件对象进行操作, ...

  4. org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element

    org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element(识别不到想要的元素) 想获取 ...

  5. NOIP模拟测试10「大佬·辣鸡·模板」

    大佬 显然假期望 我奇思妙想出了一个式子$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{k \times j}^{k}\times w[j]$ 然后一想不对得容 ...

  6. NOIP模拟测试5「星际旅行·砍树·超级树」

    星际旅行 0分 瞬间爆炸. 考试的时候觉得这个题怎么这么难, 打个dp,可以被儿子贡献,可以被父亲贡献,还有自环,叶子节点连边可以贡献,非叶子也可以贡献,自环可以跑一回,自环可以跑两回, 关键是同一子 ...

  7. 不管卷不卷,面试还是得问问你G1原理!

    所有的垃圾回收器的目的都是朝着减少STW的目的而前进,G1(Garbage First)回收器的出现颠覆了之前版本CMS.Parallel等垃圾回收器的分代收集方式,从2004年Sun发布第一篇关于G ...

  8. 万字长文详解HiveSQL执行计划

    Hive SQL的执行计划描述SQL实际执行的整体轮廓,通过执行计划能了解SQL程序在转换成相应计算引擎的执行逻辑,掌握了执行逻辑也就能更好地把握程序出现的瓶颈点,从而能够实现更有针对性的优化.此外还 ...

  9. theUnforgiven-冲刺第一天

    每天的冲刺博客分为scrum和PM报告两部分 吴邦天 负责项目整体构思以及对任务安排,承担项目具体设计,编码: 唐嘉诚 负责项目前端页面设计,承担整个项目的后端数据库搭建以及编码 周游 项目美化以及细 ...

  10. NAT网络地址转换技术

    NAT网络地址转换技术 目录 一.NAT概述 1.1.概述 1.2.NAT 的应用场景 二.NAT的类型及配置命令 2.1.静态NAT 2.2.动态NAT 2.3.Easy IP 2.4.NATP 2 ...