JavaScript学习笔记(一)

写在前边的话,有个问题,作为程序猿,应把js学到什么程度?其实只要掌握两方面就好了,一个表单,一个ajax(其实就是要学好DOM),其它特效什么的不用管。若想弄特效,在网上下来改改即可。

1.js是基于对象和事件驱动,就是必须有事件来激活js。

html怎么调用js语句?若已知test()为js语句
①button调用

<input type="button" value="测试" οnclick="test();">
②href调用

<a href="javascript:void(0);" οnclick="test();" ></a>
其中javascript:void(0)表示伪协议,类似于http:写法,它表示点击超链接后不跳转,在这里不能写href="#",这样写实际上还是进行了跳转。
③一次调用多个js

<input type="button" οnclick="test1();test2();test3();">
2.js中string是基本数据类型(s为小写),用单引号或双引号都可修饰。而在java中String为引用类型。NaN(Not a Number)属于数值型,它是js里唯一一个不跟自己相等的值。

3.js中的数组长度可变,并且元素类型也可以不同.js有6中数据类型:

①undefined未定义,表示声明了变量但未赋值
②number,包括NaN
③null,空值
④string
⑤object,比如对象,数组等
⑥boolean

其中:
v_kao; //会提示你v_kao没定义
var v_kao; // 那么v_kao的值就是null;

4.object中的delete只能删除对象的属性,而删除不了对象

5.object类型的建立有两种方式:
①常规写法

var obj1 = new Object();//创建对象
	obj1.name = "jerry";
	obj1.age = 20;
	obj1.id = "001";
②JSON写法

var obj2 = {name:"tom",age:20,id:"001"};
推荐第二种JSON写法
进行遍历操作时,可用for循环

for(var attr in obj2){
	alert(typeof attr);//结果为String,attr为key
	alert(attr + ":" + obj2[attr]);//obj2[attr]为key所对应的value,	

//但不能写成obj2.attr,因为attr为String类型,这相当于写成	

//obj2."name"这样的形式,所以错误
}
6.定义函数有三种方式

function test1(){
	alert('第一种形式:function语句形式');
};

var test2 = function(){
	alert("第二种形式,函数直接量形式,表达式");
};
说明:在js里,函数也是对象,这跟java不同,此时的函数叫做匿名对象,为特殊对象
var test3 = new Function("x","y","return x+y");
alert(test3(2,3));
//这是构造函数的形式,创建一个function类的实例对象
js里边的形参不用写类型,直接写参数即可。如:function(a,b){};

7.arguments对象是得到函数的实际参数,而与形参无关
arguments.callee表示引用当前正在执行的函数,或者说是调用。可以用来递归
arguments.callee的函数对象的引用,它给匿名函数提供了一种自我引用的方式。如:

var func = function() { alert(func === arguments.callee);}func();
//结果为true,就是说func与arguments.callee对象类型和值都相等。
方法类似于数组,但它不是数组,而是Object对象!

8.单独的脚本文件js中不需要添加<script>标记,因为这个是html标记。当需要引入外部js时,一定要分开写,不能嫌麻烦只写一行。如外部js为util.js,想引入时必须这么写:

<script src="util.js"></script>//分开两部分
<script>
	function testFrm(){
		//方法内容
	}
</script>
错误的写法是:

<script src="util.js">
	function testFrm(){
		//方法内容
	}
</script>
不能直接写,一定要分开,否则会不执行。

9.js为弱类型语言,意为它是根据赋值决定变量类型。所有的变量都用var表示

var i = 5;//为int类型
var name = "tom";//为string类型
js也分全局变量跟局部变量:
全局变量:①在方法外部声明的变量②在方法内部但没有加var关键字的变量
局部变量:方法内部使用var声明的变量
不过js不建议使用全局变量,一是安全性,二是效率问题

10.==,会自动转换数据类型
   ===,不会自动转换数据类型

function test2(){
        	var a = 3;
        	var b = "3";
        	if(a==b){
        		alert("a与b相等");
        	}else{
        		alert("a与b不相等");
        	}
        }
结果为a与b相等

function test3(){
        	var a = 3;
        	var b = "3";
        	if(a===b){
        		alert("a与b相等");
        	}else{
        		alert("a与b不相等");
        	}
        }
结果为a与b不相等

11.处理“”与‘’时应该错开用,不能两个“”或两个‘’同时使用。如:

<img src="1.jpg" οnclick="alert('OK');">
onload表示加载页面,一般应用在<body>之中,如:

<body οnlοad="javascript:alert('hello');">
onSubmit会在点击提交按钮,但没有提交成功时触发,这一般应用在表单的验证,如用户名输入不正确等

<form name="test" action="1.html" οnsubmit="return true">

12.js里的this表示当前“标签”的对象。如:

<img src="1.jpg" οnclick="JavaScript:alert(this.src)">//this表示img标签
<input type="text" name="ddd" value="adad" οnclick="JavaScript:check(this)">//this表示input标签

13.window.open表示打开一个新窗口,但已不常用window.open("1.html");window.opener方法 :返回父窗口的应用

14.settimeout是用于在指定的毫秒数后调用函数或计算表达式,setInterval是每隔一定时间就调用函数,方法或对象。
区别在于:setTimeout()方法是在等待指定时间后执行函数, 且只执行一次传入的函数. setInterval()方法是每指定间隔时间后执行一次传入的函数,循环执行直至关闭窗口或
clearInterval().例如:

<script>
function aa(a,b){
	alert("---" + (a+b));
}

function testTimeout(){
	var c = 2;
	var d = 3;
	setTimeout(aa(c,d),3000);
}
本意是在3秒后执行aa函数,但若写成上述形式,会立即执行,既使给aa(c,d)加上双引号[setTimeout("aa(c,d)",3000);]也不行,正确的写法应该是写一个匿名内部类,这是最万无一失的。

function testTimeout(){
	var c = 2;
	var d = 3;
	setTimeout(function(){
		aa(c,d),3000);
	}
}
</script>
15.innerHTML是获取HTML当前标签的起始和结束里面的内容
     toString()是把数组转换为字符串,并返回结果
     toLocalString()是把数组转换为本地数组,并返回结果
     这二者区别是: toLocalStrng()是Date类中的一个方法,而且该方法已经不再使用

16.this表示什么?

哪个对象调用了this所在的函数,this就表示哪个对象。

17.如何获取dom标签?

如在form表单中,有

<form name="frm">
	姓名:<input name="uname" id="t">
</form>
则获取姓名时可以用

var name1 = document.getElementById("t");//通过id获取
var name2 = frm.uname.value;//通过name获取
//这两种方法等价,先获取表单名,再依次获取标签值


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值