javascript语言速成

因为是个弱类语言.把他所有要点整理成一篇文章也应该没问题吧?

有一定C语言基础就够了


第一章:HTML和script

HTML是超文本语,它以标枪<HTML>  </HTML>对应开始和结束.

超文本文件中,JavaScript程序代码位于<script></script>之间.

script 的type 属性值一定是 javascript/text.

如果script属性引入了Js文件,那么起始标签与结束标签之间的内容将被忽略.

例子:

<scrpit type="text/javascript" src="tom.js"">
    alert("abc");
</script>
其中tom.js:

alert("tom file");
于是对话框中,只显示的是tom file



第二章.数据类型

javascript里面不分定义类型的,只要用了var 都是定义了一个变,没有赋值时是一个Undefined类型

并且var a=20;这时是数字类型, a=true;这时又为了逻辑类型

可以使用typeof 获取类型

标识符:只能有字母,数字   _  和 $ 这四种组成,同时开头不能是数字.


数字类型:占8字节(64位),保留16位有效数字

 250(十进制) ,0250(八进制),0x250(十六进制).2.5E3(E3表示10的三次方)

NaN(无意义数字), Infinity(无穷大)


字符串类型:用一对(')或者(")的就是

注意换行符(\n),制表符(\t),回车符(\r).,反斜杠(\\),单引号(\'),双引号(\").

可以使用+进行连接.


逻辑类型:true,false


函数:function ( ...)  { .....   }

可当成变量看: 假如有function add() ... 然后var tom=add;  那么tom也是一个和add一样功能的函数

使用arguments重构: 

 function average()

{ if(arguments.length==1) return arguments[0];   //一个参数

   if(arguments.length==2)return (arguments[0]+arguments[1])/2 ;  //两个参数

   ....

}

对象: 

首先是构造函数:比如 

function Persom(xm,sf){
  this.name=xm;
  this.id=sf;
  this.speak=function(){
        docunment.writenln("我的名字是:"+this.name+"<br/>");
 }
}
然后是实例化对象:var tom=new Person("汤姆猫","13254");

使用对象: tom.speak();

顺便一说object()是js里面预定义的一个对象,可以直接拿来用


第三章.运算表达式

运算符:+-×÷,没啥好说.特别注意的是 a++和++a的运算级优先级别比×÷高


关系表达式: > < =也没啥好说.特别注意的是

如果两个字符串比较,那么比的就是每个字母大小("d">"a"),如果相等,比较下一个字母

如果不同类型比较.转化为数字类型比较.其中"52"可以转化为52,但是"52a"转为为NaN,true转化为1

这里多了个严格相等(===)和不严格相等(!==),指的是不自动转化下的比较.


逻辑表达: &&与  ||或  !非    没啥好说/


位运算

二元运算符: &按位与 . |按位或 . ^ 按位异或 . 

一元运算符: ~按位取反.

移位运算符: << ,>> , >>>(只补0)


条件运算:  a:b?c.

   if/else  , switch.


循环:for, while, do while.  -------break,continue,return

其他运算:new,typeof, instanceof(判断某对象是否某类型)

 

第四章.字符串对象

创建

var str=new String("とある字符串");


比较

使用 == 逻辑比较字符串对象的话,比较的是引用值而不是内容本身

var str1=new String("哈哈哈!");   //建立了一个哈哈哈的对象
var str2=new String("哈哈哈!");   //再次建立了一个哈哈哈的对象,与前一个对象不同的
var boo1=(str1== str2);             //boo1=false~因为两个对象不是指向同一个的
比较内容本身应该使用localeCompare();
var boo2=str1.locateCompare(str2;   //大于返回1,等于返回0,小于返回-1;

连接

concat() ,或者直接用  +


检索

使用charAt();   //charCodeAt();则是把检索结果转化为编码

var string =new String("SD卡路公交受得了柑橘味儿");
var ch=string.charAt(5);    //ch结果是"公"

查找

使用indexOf();  返回的是第一次找到字符串的位置,找不到返回-1

indexOf("bcd");  //表示从头开始查找

indexOf("bcd",5);  //表示从第六个字母开始找

lastIndexOf(  ) ;    //向前查找.


获取子串

使用substring();  //小的数字为起始位置,大的数字为末位.首字下标是0.结尾不算入其中

var s=new String("123456789");

var sub=s.sub(3,6);    //sub=456  , 7的下标虽然是6,但结尾不算进去

使用slice(a,b);   //左边的数是起始位置右边是末位.同时负数表示从尾倒数过来.-1表示最后一个


替换

replace(); 把第一个找到的,替换成新的

var s=new String("tom@sohu.com");
var ss=s.replace("om","eacher");    //替换后s并没有改变

大小写切换:

toLowerCase(); 全部变成小写

toUpperCase();全部变成大写


与数字转换:

toString();  数字变成字符串,默认变为10进制的.

toString(2);  //变成2进制的,如  5 变成  101

toString(16); //变成16进制


parseInt();  //字符串转换为整型,可识别10,8,16进制

parseFloat();  //转化为浮点型

Number();  //转化为数字类型

以上如果转化失败都是返回NaN;


正则表达式

理解为一种自定义格式就可以~

它封装的对象是RegExp~~

元字符

.            任何字符

\d       0~9任一个数字                           \D    非数字

\s       空格类符(\n,\t,\f,\r)                       \S     非空格类

\w      标识符的字符                               \W     非标识符的字符

[  ]      表示括号内任一个                       [^  ]     非括号内以外的字符

[a-e]    a到e任一个                                [a-zA-Z]     字母任一个


限定词:加在后面的,用来形容出现次数

?     出现0或者1

+     至少出现一次

{n}    出现n次

{n, }    至少出现n次

{n,m}       n≤出现次数≤m

*     出现任意次


例子:日期格式只能是2010-02-04或者2010/02/04

  var reg =/\d{4}[-*][01]\d[-/][0-3]\d/;


指令  g  全局匹配,不只匹配一个.    i忽略大小写.


该对象有两个方法:

test()      //返回bool值,看是否和格式一致,一致后并保存lastIndex值为下一个字符

exec()     //返回一个字符串数组,用来查找格式一致的,查找失败后lastIndex归零.


字符串与正则的匹配:

match();  //功能和exec()一样,不同的是exec是RegExp的方法,match是字符串的方法.

search();  //返回第一个匹配的位置

replace();   //替换,如果RegExp不是全局的,就是指令没有g,那么只替换第一个.


第五章.数组对象

创建

var a=new Array(3);  //一个3元素数组,如果是Array()表示0元素

var a=new Array(3,4,5)  //当大于一个数时,像这个,表示创建一个3元素数组,对应3个值

var a=[5,6,2,4];               //用常量创建4元素数组

没有二维数组.不过可以通过数组的数组构造,如: a=[[1,2],[5,6,7],5,[2,5]];


赋值.

数组长度一开始只是初始定义,其长度可以随便变化.

例如a是一个2元素数组.

此时:a[2]=5;    那么他的长度自动增长.变为3了


转化

toString();  //返回字符串,将数组变成字符串,元素之间有逗号隔开

join();     //返回字符串,连接并变成字符串.例如 a.join("--");      //变成5--6--2--4

split();   //返回数组,将字符串变数组.跟上面想法.split("--")则可以将上面变为5,6,2,4

           //var str="abcdefbcdabceef";   var arr=str.split("bc");   那么arr=["a","adef","da","eef"];


添加删除

push(   );  //返回数组长度,并在队尾加入新元素.  push(57,69,84); 长度+3,加了三个新元素

pop();      //删除并返回队尾元素, 数组长度-1;

unshift(   );  //对应跟push相似,不过是从头部一次性加入

shift();        //对应跟pop()相似, 不过是从头部删除


排序

 sort();   //按照每个元素的首字符排序

sort(....);   //如果里面填入函数的话按照函数的方式排序,函数是两个数比较,在后面的返回1,相等返回0,在前面的返回-1


连接

concat( [4,5,6],b   );   //连起来


获取子数组

slice(2)  //第三个元素直到结尾

slicee(2,5);   //第3个元素到第5个元素


替换数组

splice(2,1,'a','b');  //第三个元素开始的一个元素变为'a','b',长度+1了

splice(2,0,11,12,13,14);   //第三个元素开始,插入11,12,13,14

splice(2);              //删除第三个元素开始到结尾的元素

splice(2,3);            //删除第3个元素开始的3个元素.(可以理解为替换成空)


逆置  :reverse();


第六章.

Data

创建

new Date();     //当前系统时间

new Date(2014,8,19,12,11,11);   //指定时间2014年8月19日12时11分11秒

new Date(2014,8,19);               //指定时间2014年8月19日


转换

toString() ;                 //获得的是字符串"Tue Aug 19  12:11:11  UTC+0800 2014"

toDateString();         //Tue Aug  19  2014

toTimeString          //12:11:11  UTC+0800 2014


获取和设置

getFullYear();      //setFullYear(year)

getMonth();         //setMonth(month);   其中这个0表示1月,所以月份要加1

getHours();        //setHours(hours);

getDays();       //setDays(days);           0表示星期日,1~6 星期一至6

等等


Math

取整

ceil();   //向上取整

floor();   //向下取整

round();   //四舍五入

随机

random();   //取0~1的随机小数,不包括0和1

三角函数

cos( ) ,   sin( ),   tan( )

acos( ); asin( );atan( );

其他

max(); min();

pow(x,y); //x的y次方

exp(x);    //自然常数e的x次方

sqrt (x);   //x的平方


第七章.浏览器对象

window

newWindow =window.open("www.baiduc.om","windowName","top=400,lefy=200");
                   //第一个参数是网址,第二个参数是窗口名称,第三个参数包括位置,窗口大小,是否有工具栏,地址栏等等
                 //第三个参数:top,left,height,width这些填入数值. 
                  //resizable(能否调整窗口大小),scrollbars(滚动条),toolbar(工具栏),menubar(菜单栏),status(状态栏),//location(地址栏)
                  //上面这些填入yes/no
newWidow.close();  //关闭窗口
moveTo(100,100);      //当前窗口移动到坐标100,100
moveBy(-100,200);     //平移
resizeTo(200,200);     //设置大小为200,200
resizeBy(-50,200);     //宽-50,高加200

对话框

window.alert(" ٩(ˊᗜˋ*)و ");    //弹出消息对话框并显示内容,只有一个确定的按键
var boo1=window.confirm(" 确定要出发吗?ᕕ( ᐛ )ᕗ ");    //弹出确认对话框,有确定和取消两个按键,返回TRUE和flase
var inStr=window.prompt("请输入角色名",  "    ");   //返回字符串,第一个参数是提示文字,第二个参数是输入的地方

定时器
var aa=setTimeout("alert('sdfkafs')" , 2000);  //2秒后弹出sdfkafs
clearTimeout(aa);      //取消aa的对象,2秒后不弹出了
var ra=setInterval("alert('sdfkafs')" , 2000);  //每2秒循环弹出sdfkafs
clearInterval(ra);      //取消ra的循环计时器

检查浏览器信息

class  navigator{
   appName;     //浏览器名称
   appVersion;     //浏览器版本号
    userAgent;     //浏览器信息,通常用这个就够了
     platform;       //运行平台
}    其余不详细说了.

窗口与框架

<frameset  rows="150,250,*">
  <frame name="top" src="top.html"   />
  <frame name="middle" src="middle.html"   />
  <frame name="bottom" src="about:blank"   />
<frameset>
创建了三层的框架,rows水平高度...表示第一个框架高150,第二个高250,剩余的是第三个的

 cols表示垂直高度,如cols="20%,80%";  左边20%宽,右边80%宽

页面导航

location{
hostname;     //URL服务器名字
href;               //URL信息,最常用,基本就是表示一个连接
host;           //服务请名字和端口
hash;        //URL中#后面的内容
port;       //端口号
pathname;     //路径信息
search;           //查询字符串,一般为?开头
protocol;        //协议
assign(); 
replace();
}

history{
back();            //后退一页
forward();     //前进一页
go( ..);   //go(4)表示前进4页,跳转到某一页
}

sceen{
height;
width;
availHeight;
availWidth;
colorDepth;
}


第八章.HTML对象

1.获取对象

getElementById();

id是唯一标识的,所以只能获得一个对象.例如:

<input type="text" id="asdasd" value="tom"/>

var str=document.getElementById("asdasd");   

getElementsByName();

这个只有名字相同,都获取.

<input type="text" name="number" value="10"/>

<input type="text" name="number" value="20"/>

<input type="text" name="number" value="30"/>

var arr=document.getElementsByName("number");    //arr=[对象1,对象2,对象3]

getElemntsByTagName();

这个范围更大.

var arr=document.getElementsByName("input");    //arr=[对象1,对象2,对象3]

2.获取对象的某个值

getAttribute(...);

<input type="text" name="number" value="30"/>

var a=getAttribute("name");   //a=number

var b=getAttribute("value");   //b=30

setAttribute(......);

arr.setAttribute("value","40");   //这是arr的value值是40

3.写成HTML文档格式

创建标记 

var ulObj= document.createElement(" ul ");  //创建了一个<ul><ul/>

添加内容

var obj1= document.createElement(" li ");  //创建了一个<li><li/>

obj1.innerText("火龙果");                               //现在是<li> 火龙果 </li>

ulObj.appendChild(obj1);                   //把上面的li放进上面的ul里面了

删除标记

ulObj.removeChild(obj1);               //删除


表格

<table border="1">
   <tr>
      <td>hey,hey</td>
       <td>start</d>
   </tr>
</table>
var rowObj =tableObj .rows[1] ;   //获取了第一行

var  cellObj=rowObj.cells[3];     //获取了第一行的第三格

使用cellObj.innerHTML;      表示单元格的数据

var rowObj=tableObj,insertRow(3);     //在第三行位置插入新一行

var cellObj1=rowObj.insertCell(0);      //在前面插入单元格


第九章.表单元素

表单就是用来提交的,和服务器系统进行交互的信息

<form></form>之间

<form  name="login"  action="test_login.html"  οnsubmit="return checkUserId()">
       用户ID:<input type="text "  name="user-id"  />
        </br>
        <input  type="submit" value="提交"  />
  </form>
上面是一个表单,名字是login,里面写着"用户ID:",接着的是一个输入文本.然后后面是一个写着提交的提交按钮

如果有onsubmit的话,在点了提交按钮时,他会将执行onsubmit的函数进行验证.

获取form对象有几种方法

var formObj=document.forms["login"];    //通过表单的名字获取

var formObj=document.login;    //通过名字获取

var formObj=document.forms[0];    //因为他是第一个表单

同样,获取数据对象有几种方法

var textObj=formObj.elements["user-id"];    //通过名字获取

var textObj=formObj.elements[0];             //因为他是第一个表单


按钮

<input type="button"  value="确定"  />

添加处理点击事件的方法有几种:

①<input type="button"  value="确定"  οnclick="compute()"  />

②btObj.οnclick=compute;

③btObj.οnclick=function(){

         //....

}


文本

文本区<textarea   rows="4"   cols="10" >啦啦啦啦啦</textarea>      4行10列

文本框<input  type="text"  value="泥濠~" size="10"  maxlength="20" />   最大显示10,最大输入20个

密码框<input  type="password"   value="123456"/>        将显示是******

他们的属性有

value        :文本内容

disabled      是否被禁用

readonly       是否只读

方法:select();  选中所有文本,比如说获取焦点时使用

         focus();     设置获取焦点

          focus="compute";     获取焦点时执行compute();

          onblur =function();     失去焦点时执行function();通常注册时经常用来检查是否正确输入


复选框

<input  type="checkbox"  name="course"  value="语文"  checked="checked" />

<input  type="checkbox"  name="course"  value="数学"   />

 单选按钮(名字相同为同一组)

<input  type="radio"  name="specialty"  value="围棋"  checked="checked" />

他们也可以设置onclick;


下拉列表

<select>
     <option  value="apple">苹果</optiom>
     <option  value="banana">香蕉</optiom>
      <option  value="pear"  selected="selected'>雪梨</optiom>
</select>
一开始选取的是雪梨

<select>属性:

length  当前项目个数

options   项目

selectedIndex   当前选中的索引值

multiple       是否支持多选.

方法

add(option,index)     //添加option对象

 var optionObj=document.createElement("option");
optionObj.value="orange";
optionObj.text="橙";
listObj.add(optionObj) ;    
remove(index);    //删除位置为index的项目

onchange              //选择发生变化时

<Option>属性

value;

text;             

index;                 //列表中的位置

selected;             //是否被选中返回true ,flase



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值