JavaScript1

来源:互联网 发布:大麦盒子有线网络设置 编辑:程序博客网 时间:2024/04/28 19:53

小知识点:Http的无状态性,不会记录或保存值

关于调试:右键-设置起始页.在程序正式发布的时候,需要将debug属性设置为false,因为开启调试会很消耗性能.
如果JavaScript中的代码有语法错误,浏览器会弹出错误信息,查看报错信息就能帮助排查错误.
可以使用Ie作为调试器.
设置:Internet选项-高级-去掉禁用脚本调试和禁用脚本调试(其他)前的勾选.
断点的设置,监视变量等操作和c#一样.

js中null和Undefined

var n;alert(n+100);

显示NaN

var n=null;alert(n.toString());

直接报错

  1. undefined表示一个未知状态
  2. 声明了但是没有初始化的该变量,变量的值是一个未知状态(undefined)
  3. 当方法没有明确的返回值时,返回值时一个underfined
  4. null表示尚未存在的对象,null是一个有特殊意义的值,可以为变量赋值为null,此时变量的值为已知状态.不是underfined(用来初始化变量,清除变量内容,释放内容,和c#中是一样的)
  5. undefined==null 结果true
  6. Undefined===null 结果为false 严格判断中,类型,值由一个不一样则判断为false
  7. 有时候使用==可能带来更好的效果

总结:在使用变量时先判断是否为Null或者为Undefined4

if(typeof(x)!='undefined' &&x!=null){注意这里Undefined 是单引号}

JS中\也是转义字符,不能使用@,只能使用\\

注意在swich判断的时候,相当于===严格等于

JS中的全局变量
默认如果在script标签中定义变量,则属于全局作用范围(全局执行环境,无作用域),属于window对象
全局作用域范围的变量直到网页关闭或浏览器关闭时才释放资源
一个页面中的多个script标签中的变量可以相互访问,那不需要var的申明的全局变量有什么用??????????

JS也有垃圾回收机制,会定时对可释放资源的变量进行回收,该变量设置为null,则表示可以被回收了

如果某个函数内定义了变量则作用域范围属于该函数.

JS中的作用域问题:
js中没有如C#般的块状作用域域
例如

function func(){var sum=0;for(var i=0;i<=100;i++){sum+=i;}alert(i);}

输出结果101

JS中的格式转换
parseInt(arg):将指定的字符串转换为整数
parseFloat(arg):将指定的字符串转换为浮点型
Number(arg):将指定的值转换为记数字.转换的是整个值.如果该字符串不能完全转换为整形,则返回NaN.
IsNaN(arg):判断arg是否为一个非数字
String(arg):将指定的值转换为字符串
Boolean(arg):将指定的值转换为Boolean型

转换int

var n='100';alert(parseInt(n));

Swtich(n)
case 上述情况:显示100
‘case 上述情况,下面改为(parseInt(n,16)):意义是100是16进制的转换为10进制
case 100nd:显示100
case 100nd100:显示100
case nd100:显示NaN(Not a Number)
(break省略)
转换浮点型float逻辑和上述相同

转换成数字型Number

var n='78.78';alert(Number(n));

swich(n)
case 上述情况:显示78.78
case 78.78.78:显示NaN
case 78.78kd:显示NaN
(break省略)

总结:转化parseInt和float转换条件相对宽松,而Number很规范

Boolean的转换

alert(boolean(undefined));

显示false

alert(boolean(null));

显示false

alert(Boolean(数字));

当数字为0时,显示false,其他任何非0条件下都为true;

alert(Boolean(字符串));

当字符串为空,false.其他都为true.

IsNaN(n)

该函数判断n是否是NaN

JS中的方法:
在方法中,如果一个方法没有明确的返回值,则默认返回Undefined.

在页面中如果有两个方法,只会取最后一个方法.(直接赋的除外)

js中方法的参数不需要访问修饰符,没有返回值类型,因为全部都是var,如果方法有任意个参数,则形参就不写,使用arguments进行传递参数

JS方法没有重载

如果需要返回,则直接写Return加返回值,注意自己加封号
如果不需要返回,不要加入return

在JS中编写大括号都是直接跟在后面而不要另起一行,很重要

如果遇到JS中的参数后面的方法属性点不出来,可以考虑先建一个该类型的变量,然后替换这个变量

匿名函数,主要是为了解决重名问题,即使他里面是有返回值的
匿名函数的第一种写法:

var ff=function(){alert('酒逢千杯千杯少');};

将一个匿名函数赋值给了一个变量,ff此时就成了一个方法,切记不是Undefined.即使方法内有return.

在使用匿名函数的共同特性是大括号回来的时候加上封号

匿名函数的第二种写法:

document.getelementbyId('btn').onclick=function(){alert(3);};

给ID为btn的标签注册一个单击事件
该种写法较为常见

匿名函数的第三种写法:

var m1=new Function("p1","p2","p3","retrun p1+p2+p3");alert(m1(1,2,3));

注意,这里的Function首字母是大写的,因为是new出来的.

0 0