1. JavaScript的定义
JavaScript是运行在浏览器端的脚步语言, 是由浏览器解释执行的, 简称js, 它能够让网页和用户有交互功能, 增加良好的用户体验效果
JavaScript是浏览器解释执行的,前端脚本语言还有JScript(微软,IE独有),ActionScript( Adobe公司,需要插件)等。
前端三大块
1、HTML:页面结构
2、CSS:页面表现:元素大小、颜色、位置、隐藏或显示、部分动画效果
3、JavaScript:页面行为:部分动画效果、页面与用户的交互、页面功能
2. JavaScript的使用方式
1. 行内式(主要用于事件) |
2. 内嵌式 |
3. 外链式 |
<input type="button" name="" onclick="alert('ok!');"> |
<script type="text/javascript"> alert('ok!'); </script> |
<script type="text/javascript" src="js/index.js"></script> |
3.变量和数据类型
3.1 定义变量
JavaScript 是一种弱类型语言,也就是说不需要指定变量的类型,JavaScript的变量类型由它的值来决定,
定义变量需要用关键字 'var', 一条JavaScript语句应该以“;”结尾
定义变量的语法格式:
var 变量名 = 值;
var iNum = 123; var sTr = 'asd'; //同时定义多个变量可以用","隔开,公用一个‘var’关键字 var iNum = 45,sTr='qwe',sCount='68'; |
3.2 JavaScript注释
JavaScript的注释分为单行注释(//注释内容)和多行注释(/多行注释/)
<script type="text/javascript"> // 单行注释 var iNum = 123; /* 多行注释 1、... 2、... */ var sTr = 'abc123'; </script> |
3.3 数据类型
js中有六种数据类型,包括五种基本数据类型和一种复杂数据类型(object)。
5种基本数据类型:
1、number 数字类型
2、string 字符串类型
3、boolean 布尔类型 true 或 false
4、undefined undefined类型,变量声明未初始化,它的值就是undefined
5、null null类型,表示空对象,如果定义的变量将来准备保存对象,可以将变量初始化为null,在页面上获取不到对象,返回的值就是null
1种复合类型:
1、object 后面学习的数组、函数和JavaScript对象都属于复合类型
//1.1 数字 number var iOne = 10.1; //1.2 字符串 string var sStr = '1234'; //1.3 布尔 boolean; var bIsTrue = false; //1.4 未定义 undefined var unData; //1.5 null 表示空对象 var nullData = null; //1.6 object 表示对象类型 var oObj = { name:"隔壁老王", age:88 } // 获取变量的类型 var type = typeof(oObj); alert(type); // 获取对象的name属性 alert(oObj.name); |
3.4 变量、函数、属性、函数参数命名规范
1、区分大小写
2、第一个字符必须是字母、下划线(_)或者美元符号($)
3、其他字符可以是字母、下划线、美元符或数字
3.5 匈牙利命名风格:
对象o Object 比如:oDiv
数组a Array 比如:aItems
字符串s String 比如:sUserName
整数i Integer 比如:iItemCount
布尔值b Boolean 比如:bIsComplete
浮点数f Float 比如:fPrice
函数fn Function 比如:fnHandler
正则表达式re RegExp 比如:reEmailCheck
4. 函数定义和调用
4.1 函数定义
函数就是可以重复使用的代码块, 使用关键字 function 定义函数。
<script type="text/javascript"> // 函数定义 function fnAlert(){ alert('hello!'); } </script> |
4.2变量与函数预解析
JavaScript解析过程分为两个阶段,先是编译阶段,然后执行阶段,在编译阶段会将function定义的函数提前,并且将var定义的变量声明提前,将它赋值为undefined。
<script type="text/javascript"> fnAlert(); // 弹出 hello! alert(iNum); // 弹出 undefined function fnAlert(){ alert('hello!'); } var iNum = 123; </script> |
4.3提取行间事件
在html行间调用的事件可以提取到javascript中调用,从而做到结构与行为分离
<!--行间事件调用函数 --> <script type="text/javascript"> function fnAlert(){ alert('ok!'); } </script> ...... <input type="button" name="" value="弹出" onclick="fnAlert()"> <!-- 提取行间事件 --> <script type="text/javascript"> window.onload = function(){ var oBtn = document.getElementById('btn1'); oBtn.onclick = fnAlert; function fnAlert(){ alert('ok!'); } } </script> ...... <input type="button" name="" value="弹出" id="btn1"> |
4.4. 函数调用
函数调用就是函数名加小括号,比如:函数名(参数[参数可选])
<script type="text/javascript"> // 函数定义 function fnAlert(){ alert('hello!'); } // 函数调用 fnAlert(); </script> |
4.5匿名函数
定义的函数可以不给名称,这个叫做匿名函数,可以将匿名函数直接赋值给元素绑定的事件来完成匿名函数的调用
<script type="text/javascript"> window.onload = function(){ var oBtn = document.getElementById('btn1'); /* oBtn.onclick = myalert; function myalert(){ alert('ok!'); } */ // 直接将匿名函数赋值给绑定的事件 oBtn.onclick = function (){ alert('ok!'); } } </script> |
4.6. 定义有参数有返回值的函数
定义函数时,函数如果有参数,参数放到小括号里面,函数如果有返回值,返回值通过 return 关键字来返回
<script type="text/javascript"> function fnAdd(iNum01,iNum02){ var iRs = iNum01 + iNum02; return iRs; alert('here!'); } var iCount = fnAdd(3,4); alert(iCount); //弹出7 </script> |
函数中'return'关键字的作用:
1、返回函数中的值
2、执行完return函数执行结束
5.获取标签元素
(一):
可以使用内置对象 document 上的 getElementById 方法来获取页面上设置了id属性的标签元素,获取到的是一个html对象,然后将它赋值给一个变量,比如:
<script type="text/javascript"> var oDiv = document.getElementById('div1'); alert(oDiv); </script> <div id="div1">这是一个div元素</div> |
说明:
上面的代码,如果把javascript写在元素的上面,就会出错,因为页面上从上往下加载执行的,javascript去页面上获取元素div1的时候,元素div1还没有加载。
解决方法有两种:
第一种方法:将javascript放到页面最下边 | 第二种方法:设置页面加载完成执行的函数,在执行函数里面获取标签元素 |
<div id="div1">这是一个div元素</div> <script type="text/javascript"> var oDiv = document.getElementById('div1'); alert(oDiv); </script> |
<script type="text/javascript"> window.onload = function(){ var oDiv = document.getElementById('div1'); } </script> 说明: |
(二):
可以使用内置对象document上的getElementsByTagName方法来获取页面上的某一种标签,获取的是一个选择集,不是数组,但是可以用下标的方式操作选择集里面的标签元素。
<script type="text/javascript"> window.onload = function(){ var aLi = document.getElementsByTagName('li'); // aLi.style.backgroundColor = 'gold'; // 出错!不能同时设置多个li alert(aLi.length); aLi[0].style.backgroundColor = 'gold'; } </script> .... <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> </ul> |
课堂练习:
使用循环操作列表中的每个元素
6. 操作标签元素属性
获取的页面元素,就可以对页面元素的属性进行操作,属性的操作包括属性的读和写操作属性的方法
1、“.” 操作
2、“[ ]”操作
属性写法:
1、html的属性和js里面属性写法一样,但是记得“class” 属性写成 “className”
3、“style” 属性里面的属性,有横杠的改成驼峰式,比如:“font-size”,改成”style.fontSize”
通过“.”操作属性: | 通过“[ ]”操作属性: |
<script type="text/javascript"> window.onload = function(){ var oInput = document.getElementById('input1'); var oA = document.getElementById('link1'); // 读取属性值 var sValue = oInput.value; var sType = oInput.type; var sName = oInput.name; var sLinks = oA.href; // 写(设置)属性 oA.style.color = 'red'; oA.style.fontSize = sValue; } </script> ...... <input type="text" name="setsize" id="input1" value="20px"> <a href="http://www.itcast.cn" id="link1">传智播客</a> |
<script type="text/javascript"> window.onload = function(){ var oInput1 = document.getElementById('input1'); var oInput2 = document.getElementById('input2'); var oA = document.getElementById('link1'); // 读取属性 var sVal1 = oInput1.value; var sVal2 = oInput2.value; // 写(设置)属性 // oA.style.val1 = val2; 没反应 oA.style[sVal1] = sVal2; } </script> ...... <input type="text" name="setattr" id="input1" value="fontSize"> <input type="text" name="setnum" id="input2" value="30px"> <a href="http://www.itcast.cn" id="link1">传智播客</a> |
6.2innerHTML
innerHTML可以读取或者写入标签包裹的内容
<script type="text/javascript"> window.onload = function(){ var oDiv = document.getElementById('div1'); //读取 var sTxt = oDiv.innerHTML; alert(sTxt); //写入 oDiv.innerHTML = '<a href="http://www.itcast.cn">传智播客<a/>'; } </script> <div id="div1">这是一个div元素</div> |