1.Js的概念
1.JavaScript是一种解释性脚本语言,浏览器加载,浏览器执行用来向页面添加交互行为;
2.Java Script由三个主要组成部分:ECMAScript(核心),BOM(浏览器对象模型),DOM(文档对象模型);
特点:
交互性(它可以做的就是信息的动态交互)
安全性(不允许直接访问本地磁盘)
跨平台性(只要是可以解释js的浏览器都可以执行,和平台无关)
2.Js引入的三种方式
2.1行内
语法:<a href="javascript:alert('点你就点你');">点我,点我...</a> |
|
<!-- 行内js--> <!--不推荐写--> <a href="javascript:alert(1)">哈哈</a> <!--推荐的写法--> <a href="javascript:void(0)" onclick="alert(2)">onclick</a> |
2.2内部JS
页面内的JS是写在一组<script>标签内,这组标签可以写在页面内的任意位置
示例代码: <script type="text/javascript"> alert(“不点我也来”); </script>
|
仅仅在页面使用的代码
2.3外部JS
外部JS方式,其实就是先单独定义一个JS文件,然后将这个JS文件与要使用的网页将关系关联起来
引入外部JS文件: <script type="text/javascript" src="JS文件位置"></script> |
多个页面共享的js代码,提取到公共的js文件中
3.JavaScript变量
- 使用var关键字,无论是何种数据类型的变量,均可以使用var关键字来进行声明;弱类型
- 程序可以用变量名来指向具体的对象内存,并通过变量名来获得对应的对象
语法
var 变量名; //声明变量【推荐方式】
var 变量名=值; //声明变量并赋值【推荐方式】
已声明赋值的变量 = 另一种类型值; //【不推荐】
不声明变量 = 值; //不事先声明变量直接使用
示例代码
<script type="text/x-javascript">
var num; num=10; console.debug(num) age=22; console.debug(age) |
4.JavaScript原始数据类型
JavaScript中的原始数据类型相当于Java的基本数据类型,在js中可以使用typeof 和typeof()判断当前变量属于那种数据类型;
例子:var a = true; alert(typeof a);//boolean alert(typeof (a));//true
4.1number(数值类型)
/*number类型:数值类型,计算机命令为处理数据而生*/ var num=10; console.debug(1/10);//无穷大 0.1 console.debug(isFinite(1/10))//判断是否为无穷大 true var n=new Number(15); console.debug(n); |
4.2boolean(布尔类型)
/*bollean类型*/ var res=false; console.debug(res)//false res=new Boolean(); console.debug(res) if("易烊千玺"){ console.debug("易烊千玺老好了") }
|
4.3String (String类型)
/*String类型*/ var a="王嘉尔"; a="张艺兴"; console.debug(a);//张艺兴 console.debug(a.length);//3
|
4.4null(空对象),undefined(未定义或未初始化)
/*null undifiend解释*/ var pason=null; console.debug(pason)//null var h; console.debug(h);//undefined |
5.JavaScript运算符
比较运算
/*等值运算符*/ var a=10; var b="10"; console.debug(a==b);//true console.debug(a===b);//false console.debug(a!==b);//true for(var i=1;i<=10;i++){ console.debug(88888) } |
6.JavaScript函数
语法
function run(num1,num2){
console.debug(num1+num2)
}
run(10,20)
run(10)
run();
全局变量和局部变量
var name="全局变量"
function walk(){
name="小姐姐";
}
//walk
function smile(){
var name="小哥哥"
}
smile;
console.debug(name);
匿名函数语法
/*匿名函数*/
var fun=function(){
console.debug("小姐姐")
}
fun();
7.JavaScript对象
7.1本地对象
7.1.2Date:日期对象
var date= new Date();
console.debug(date);
date.dateFormat = function(){//为改对象添加一个函数
var year = this.getFullYear();
var mouth = this.getMonth();
var day = this.getData();
var hour = this.getHours();
var min = this.getMinutes();
var sec = this.getSeconds();
return year+"/"+mouth+"/"+day+" "+hour+" "min+" "+sec;
}
var frm = date.dateFormat();
console.debug(frm);
7.2String字符串对象
var str = "佳宇是个大沙雕"
var s = str.split();
console.debug(s)
var word=String.fromCharCode(65)
console.debug(word)
7.3Array数组对象
arr = new Array(10);//单独写一个长度
console.debug(arr)
arr = new Array(10,20,30);//多个元素
console.debug(arr)
console.debug(arr[1])
arr[66]=88;
console.debug(arr)
console.debug(arr[66]);
/*for in 遍历*/
for(var i in arr){
console.debug(arr[i])
}
7.4系统函数
需要,解码和编码
//IE浏览器不允许发送中文
var ss = "百度"
var str = "www.baidu.com?url="+ss;
//编码
var u =encodeURI(str);
console.debug(u);
//解码
var i = decodeURI(u)
console.debug(i)
/*
使用encodeURICommponent和decodeURICommponent
* */
/*编码*/
str = "www.baidu.com?url=http://www.qq.com";
var se =encodeURIComponent(str);
console.debug(se);
//解码
var a = "console.debug('eval函数实例')";
console.debug(a)
event(a);
7.4.1Math
num = Math(1.1);
console.debug(num)
//65-97
var num = parseInt(Math.random()*32)+65
console.debug(num)
var word = String.fromCharCode();
console.debug(word)
7.2自定义类
function Person(){
console.debug("2222")
}
var pson = new Person();
console.debug(typeof pson)
Person();
/*
* 字段
*/
function Person(name,age){
this.name = name;
this.age = age;
}
var p = new Person("佳宇",20);
console.debug(p)
console.debug(p.name)
/*
* 方法
*/
function eat(){
console.debug("吃甲鱼")
}
function Person(){
//this.drink=eat;//前面代表Person属性,属性梭赋值的是函数
this.smok=function(){
console.debug("吸一口")
}
}
p = new Person()
//p.drink
p.smok()
/*
* part2对象添加属性的方式
*/
function Animal(name,age){
this.name=name;
this.age=age;
this.toString=function(){
console.debug(this.name+"-"+this.age);
}
}
var aml = new Animal("二狗",18)
console.debug(aml)
console.debug(aml.age)
console.debug(aml.name)
aml.toString()
var vml = new Animal("李四",22)
console.debug(vml)
//给对象添加属性
aml.sex="男";//相当于给aml对象。仅仅是给aml这个对象添加属性
aml.run=function(){
console.debug("6666")
}
console.debug(aml)
aml.run();
/*
* part2给原形添加属性
*
*/
Animal.prototype.song=function(){
console.debug("佳宇来一个")
}
Animal.prototype.phonenum = "159645236554";
aml.song()
vml.song()
console.debug(aml.phoneNum)
console.debug(vml.phoneNum)
8.BOM
Window
- window对象是BOM中的顶级对象,默认可以省略(即调用其函数时可以省略window.);
- window对象是相对于web浏览器而言的,依赖于浏览器,在浏览器中全局对象指的就是window对象;
- window对象可以获取其他BOM对象;
注意:全局函数和window对象的函数不一样。全局函数不属于任何一个内置对象
需要提示框
var res;//时钟任务的标记
function stop(){
res=setInterval("document.getElementById('text2').value=new Date()",1000);
}
function change(){
var pass = document.getElementById("pass")
is(pass.type=="password"){
pass.type="text"
}else{
pass.type="password"
}
window.location.href = "http://www.baidu.com";
}
<body>
<input type="button" value="开始" onclick="start()">
<input id="text1" type="text" value="">
<input id="text2" type="text" value="">
<input type="button" value="结束" onclick="stop()"><br/>
password:<input id="pass" type="password" /><input type="button" value="密码" onclick="change()"/>
</body>