javascript学习笔记--基础
1<noscript></noscript>
当用户浏览器禁用或不支持javascript时 还想在页面显示一些内容可以使用<noscript></noscript>标签对。
2http mailto javascript
<a href="javascript:alert(new Date())">javascript</a>
3javascript区分大小写 html不区分
4转义字符
\b退格
\t跳格
\n回车换行
\r换行
\""双引号
\'单引号
\\ \
5特殊数据类型
undefined null
undefined用来表示不存在或者尚未赋值的变量。
null 是一个表示该变量被赋予了一个空值。
6+号的特色含义
var w=5;
var x=20;
var y="xxxxxxxx";
alert(w+x+y); 结果:25xxxxxxx
var w=5;
var x=20;
var y="xxxxxxxx";
alert(""+w+x+y); 结果:520xxxxxxx
7typeof运算符
typeof运算符返回一个字符串,指明其操作数的数据类型。
a=3;
b=null;
name="three";
alert((typeof a))
alert((typeof b))
alert((typeof name))
8参数变量可变的函数 类似于c#中的param
arguments数值对象,包含了调用程序传递给行数的所有参数。
fuction testparams()
{
var params="";
for( var i=0;i<argument.length;i++)
{
params=params+arguments[i];
}
alert(params);
}
testparams(11,22)
testparams(11,112,22)
9创建动态函数
var square=new Function("x","y","var sum;sum=x*y*Y;returen sum;");
alert(square(3,2))
注意:这里的x y 参数一定要用双引号或单引号引起来。
10URI编码处理函数
encodeURI
decodeURI
11字符串编码处理函数
escape 所有空格 标点重音符号以及任何其他非ascii码字符都用%xx编码替换,其中xx等于表示该字符的unicode编码的十六进制数
unescape
eval方法将某个参数字符串作为一个javascript表达式执行。
如果想在运行时修改变量的名称
for(var i=0;i<n;i++)
{
eval("var a"+i+"="+i);
}
上面代码定义了n个变量 分别为a0 a1.。。。。
12array对象及其属性与方法
join方法:将一个数值的所有元素转换为字符串,并把这些字符串连接起来。
可以指定一个字符串来分割结果字符串中的元素。
若未指定分隔字符串,将使用“,”来分隔。
reverse方法:对数组进行重新排序,颠倒。
sort方法:排序
alice方法:返回的是指定数组的一个子数组。
带两个参数 分别表示要返回的子数组的起止点。
如果只要一个参数,返回的子数组表示从改点到最后。
如果是一个负数,则指定的是相对于数组中最后一个元素。
splice方法:可以报元素从数组中删除,也可以向数组中插入新元素。
位于被插入(删除)元素之后的数组元素会自动进行必要的移动。
13.javascript中replace()
在javascript中,String的函数replace()简直太让人喜爱了。它灵活而强大的字符替换处理能力,让我不禁想向大家介绍它。
replace()最简单的算是能力就是简单的字符替换。示例代码如下:
<script language="javascript">
var strM = "javascript is a good script language";
//在此我想将字母a替换成字母A
alert(strM.replace("a","A"));
</script>
我想大家运行后可以看到结果,它只替换了首字母。但如果加上正则表达式结果就不一样了!呵呵,没错。replace()支持正则表达式,它可以按照正则表达式的规则匹配字符或字符串,然后给予替换!
<script language="javascript">
var strM = "javascript is a good script language";
//在此我想将字母a替换成字母A
alert(strM.replace(/a/,"A"));
</script>
呵呵,您一定发现了。这样还是只替换了第一个字母a。如果您熟悉正则,那这就难不住您。稍加修改就OK了。
<script language="javascript">
var strM = "javascript is a good script language";
//在此将字母a全部替换成字母A
alert(strM.replace(/a/g,"A"));
</script>
还可以这样,看看效果!
<script language="javascript">
var strM = "javascript is a good script language";
alert(strM.replace(/(javascript)\s*(is)/g,"$1 $2 fun. it $2"));
</script>
我这儿举的例子都是很简单的应用,replace()在此点上与您使用正则表达式的能力成正比。您正则表达式越强,呵呵,那您就会越疯狂的爱上它。
当然,我这儿推荐replace()的原因并不因为它能与正则表达式合作,而在于它还能与函数进行合作,发挥出强大的功能。
先看看简单例子:将所有单词首字母换成大写。
<script language="javascript">
var strM = "javascript is a good script language";
function change(word)
{
return word.indexOf(0).toUpperCase()+word.substring(1);
}
alert(strM.replace(/\b\w+\b/g,change));
</script>
由上可知,当正则表达式有"g"标志时,代表将处理整个字符串,即函数change的变换将应用于所有匹配的对象。而该函数有三个或更多参数,具体个数视正则表达式而定。
有了函数与正则表达式的配合,replace()处理字符串的功能空前强大起来了!
最后还举个例子,将字符串所有单词倒序,用replace()处理是如此简单。
<script language="javascript">
var strM = "javascript is a good script language";
function change(word)
{
var result = word.match(/(\w)/g);
if ( result )
{
var str = "";
for ( var i=result.length-1; i>=0; i-- )
{
str += result;
}
return str;
}
else
{
return "null";
}
}
alert(strM.replace(/\b(\w)+\b/g,change));
</script>
14.数组的处理
<script type="text/javascript">
Array.prototype.clear = function() {
this.length = 0;
}
Array.prototype.insertAt = function(index, obj) {
this.splice(index, 0, obj);
}
Array.prototype.removeAt = function(index) {
this.splice(index, 1);
}
Array.prototype.remove = function(obj) {
var index = this.indexOf(obj);
if (index >= 0) {
this.removeAt(index);
}
}
var t = ["1:2", "2:2"];
// t.push({ 'a': 3 }); //增
// t[0].a = 11; //改
t.remove("1:2"); //删
alert(eval(t));
alert(t);
</script>
15 josn增删改查操作
<script type="text/javascript">
Array.prototype.clear = function() {
this.length = 0;
}
Array.prototype.insertAt = function(index, obj) {
this.splice(index, 0, obj);
}
Array.prototype.remove = function(index) {
this.splice(index, 1);
}
var t = [{ 'a': {'c':22}, 'b': 2 }, { 'a': 2}];
t.push({ 'a': 3 }); //增
//t[0].a = 11; //改
//t.remove(0); //删
alert(t[0].a.c);
</script>
16 闭包之间的交互
fuction outerfun(){
var outvar=0;
fuction innerFun(){
outervar++;
alert(outvar);
}
fuction inneFun2(){
outervar=outervar+2;
alert(outervar);
}
}
var glvar=outerFun();
glvar.innFun();//1
glvar.innFun2();//3
glvar.innFun();//4