您的位置:首页 > Web前端 > JavaScript

黑马程序员-javascript基础知识

2014-03-24 22:34 351 查看
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

                                   javascript
一, javaScript概述
javaScript是基于对对象和事件的脚本语言
特点:·安全性(不允许直接访问本地硬盘)它可以做的就是信息的动态交互
·跨平台性.(只要是可以解释js的浏览器都可以执行,和平台无关);

二,javaScript 和java 不同
1,js是Netscape公司的产品,java是sun公司的产品
2,js是基于对象,java是面向对象
3,js只需要解释就可以执行,客户端。java需要先编译成字节码文件,再执行
4,js是弱类型非严谨语言,java是强类型严谨语言

三,javaScript与html的结合方式:
想要将其他代码融入到html中,都是以标签的形式
1,js代码存在在标签对<script>....</script>中,任意位置。并指定type属性方便与浏览器启动指定的解析引擎
2,使用script标签的src属性引入 一个js文件,(方便后期维护,扩展)如:<script src="text.js" type="javascript"></script>
注:规范中script标签中必须加入type属性

四。js的语法
1,定义变量(没有类型限制,没有字符串和字符的概念)
关键字:var 
注:js中特殊的常量值:undefined,当变量没有初始化就被使用,该变量的值就是undefined(未定义)

2,语句(与java语句格式相同)
·判断结构(if语句)
注:var x = 3; if(x == 4)可以进行比较运算,if(x=4)可以进行赋值运算,而且可以同样进行判断,不报错
因为在js中0就是false,非0就是true(通常用1表示)所以if(x=4)结果是true;null是false,非null就是真,当为字符串时也为真
如果 在js中连接两个boolean类型的表达时时,一定要用&&或||如果使用&或|会进行位运算
·选择结构(switch语句)
·循环结构(while语句,do...while语句,for语句
注:不同是,没有了具体数据类型的限制,使用时要注意

3,数组 (也有length)相当于集合长度是可变的 ,不存在越界
var x=[4,2,1,3]
x[6] = 100 也可以  
此数组可以存储任意类型的数据,所以要小心 
建立数组的另一种形式:
var array = new Array();
4,函数:
一般定义格式:
使用关键字function
function 函数名(参数名不需要写var){函数体}  与java一样函数没有被调用是不会执行的,
function show(arr){ return arr;}

执行函数格式:
直接写函数名(实际参数名)就可以调用了show();

定义在函数内的变量是局部变量,定义在函数外的变量是全局变量

函数特性:
1,没有重载形式
2,当函数没有定义参数时,实际又要传入参数,这时函数内部都会自动将传入的参数封装成一个数组,其数组名为arguments
如:函数:function show(){var sun = x+y}定义一个函数
var len =show(2,4,3){return arguments.length} 此时调用show函数,len 的值为3
3,函数是也有return 关键字,但是不需要定义返回值
4,在js中函数就是一个对象,其函数名(不包括参数列表,不带括号)就是对象的名字。函数名就指定了这个对象了
如:
定义一个函数 function show(){return "dksfj"} 
var x = show();此时含义是将函数show的返回结果赋值给变量x如果你写成 var x = show此时会x就指向了show指向的函数对象

5,可以动态定义函数 ,可以将参数列表和方法体作为参数传递
格式:
变量名 = new Function(参数,函数体);如:
var show = new Function("x","y","var sum = x+y; return sum;")动态定义了一个函数相对用得少一些

6,匿名函数(常用函数,常用于事件的处理方式上

格式:
var 变量名=function(参数名){函数体}如:var show = function(){alert("哈哈!");}
调用: 变量名();如:show();

注:
function show(){return "kss";}
var method  = show();
var method  = show;
两名代码都是正确的
第一句表示的是show 方法运行后的结果赋值给Methods变量
第二句表示的是将show指向的对象的地址赋值给Method 那么 method 也指向了该对象
那么 就可以通过method()的形式来使用此方法 

四。创建对象
1,通过函数来创建对象
格式:
定义 :function 对象名(首字母建议大写也可以不大写)(){} 如: function Persion(){alert("kss");}或function Persion(name,age){this.name=name;this.age=age}
创建: var  p = new Persion(); var p = new Persion("lisi"90);
属性,行为不需要在其主体建立,直接定义 
定义属性:p.name = "zhangsan"  p.age=23 
定义行为(使用匿名函数):p.show = function(){函数主体} 调用行为:show();

2,属性的调用方式:
1,可以通过.来调用 如p.name
2,也可以能过对象["属性名"]  如p["name"];
两者的区别,第二种可以将属性值做为字符串进行传递,第一种是无法进行参数传递

五,js中特有的语句

1,with语句 格式:with(对象){可以任意调用此对象的方法和属性不用写对象.了}   

特点:with语句确定某一个对象所使用的范围简化了抒写

2,for in 语句 格式:for(变量名 : 对象){遍历出这个对象中所有的属性的名字,s代表此对象中的属性名字,想要取出其属性的值使用 对象[属性名]}


六,js中的一些常见类

1,String 类(可以new)  方法:bold()给字符串加入<b></b>标签  link(链接的路径)将字符串变成超链接 
substring(x,y)包含头不包含尾,substr(x,y)是从x开始到y如果长度大于y则会全部截取
注:获取长度是的属性:length不是方法
2,Math类(不能new) 方法 random():返回的是小数
3,Global类(不能new里面都是转换功能)  parseInt(参数)parseInt(字符串,进制数(指得是字符串的是几进制的) isNaN()判断是不是一个数字

Object.toString(radix)可以将一个数转换成指定的进制数(数字不能调用 toString(radix))
4,Date对象(可以new)
getYear()获取年份,getDate()获取月分,getDay()获取星期几

5,属性prototype:此属性是获取对象的原型引用 ,可以给该对象添加自定义的方法如:
var arr = [23,42,23,47,28,34]
function getMax(){求出最大值的代码使用this,而不需要传入参数}
其中数组可以直接调用 sort方法,因为js已经将数组封装成一个对象了,但是不能直接调用getMaxt(arr)方法,如果也想直接用arr调用getMax方法
可以使用prototype属性,,,Array.prototype.getMax = getMax;  这样数组就可以直接调用自定义的getMax()方法了
注:js也支持this.关键字,代表调用此方法的对象。 自定义的对象中没有prototype属性,不可以给其加方法

常见全局方法都在Global对象中:
parseInt(numstr,[radix])将数字格式的字符串转成整数,如果指定了基数,那么numstr,就会按照执行基数进行转换
var num = parseInt("110",2)表示110这个字符串会按照二进制转换
alert(num)//num =6;

----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息