javascipt学习笔记



1.javascript是什么?
是网景(Netscape)开发的一种与页面进行交互的编程语言
javascript程序在浏览器端执行.javascript程序可以写在.js为后缀的文件中.
Netscape Navigator Javascript
微软       IE 1           Jscript
97,ECMA指定规范ECMAScript
--引入方式
内部:
<script></script>
外部:
<script type="text/javascript" src="js文件路径"/>
2.javascript作用:
1)前端验证.
2)ajax核心技术之一.
3)与页面进行交互,生成动态效果.
4)获得浏览器的相关信息(当前浏览器是什么,分辨率等)
3.javascript的组成部分:
  1)ECMAScript:语法基础(已经标准化)
  2)DOM:文档对象模型(部分标准化)
  3)BOM:浏览器对象模型(没有标准化,但是大部分浏览器都支持window,location,history等)




4.语法基础
4.1 数据基本类型
number:数字类型
string:字符串类型
boolean:布尔类型
null:空类型
undefined: 未定义类型
注意:
1)undefined
a.定义一个变量,如果没有赋值,那么这个变量就是undefined
b.如果没有定义变量,直接使用的类型是undefined
2)null
1.null类型的值为null.typeof显示类型为object
2.javascript函数没有提供返回值,函数的返回值是null.
3)boolean
以下几种情况,boolean值为true.
a.字符串,只要不是空字符串
b.数字非0
c.对象
null,undefined为false
4)NaN :Not a Number 不是一个数字
但NaN这个值属于number类型
4.2 对象类型
Function Object String Math Array Date

 --使用变量时,javascript的特性:
  a.javascript允许定义多个重名变量,变量的值以最后的变量赋值为准.
  b.javascript允许命令结束后不写";"
  c.javascript允许定义变量不使用关键字"var",所定义的变量叫做全局变量.
  局部变量:指的是函数内部的变量,且使用"var"定义.作用域范围从声明到函数结束.
 
--Java是强数据类型语言:定义变量时,必须定义变量的类型.
  javascript是弱数据类型语言:定义变量时不须确定变量的类型,但数据本身有类型.
  4.3 运算符
  1)算术运算符 + - * / ++ -- += *= /=
  注意:
  如果在进行非"+"操作时,javascript会把字符串(只含数字)变成数字后再运算.
  parseInt()
  parseFloat() //最多精确到小数点后14位
  2)比较运算符< > >= <= != == ===
  ==:对比的是数据的值
  ===:比较数据值的同时比较数据类型
  3)逻辑运算符 && || !
  4)三目运算符 (a==b)?true:false
  5)赋值运算符 =
  4.4 流程控制
  1)条件
  if(){}else if(){}else{}
  2)循环
  do{}while();
  while(){};
 
  java:for(int i=0;i<length;i++){}    for(Object o:list){}
  java:for(var i=0;i<length;i++){}    foreach(之后讲)
  4.5 对象数据类型
  1)Function 函数 --->类似Java中的方法
  Java:定义方法
  修饰符 返回值类型 方法名(参数列表) 异常表{}
  public int add(int i,int j){return i+j;}
  js:定义函数
  a. 方式一(推荐)
  function add(i,j){return i+j;}
  add(1,2);
  b. 不推荐使用,因为函数体书写可读性不强
  var fun = new Function("i","j","return i+j;");
  fun(2,2);
  c.匿名函数
  var fun = function(i,j){return i+j;}
  fun(3,2);
  注意:
  a.js中函数没有重载的概念,函数调用优先变量的定义,之后以最后一次定义为准.(和参数列表无关)
  b.函数内部有一个隐藏对象(内置对象)
  arguments:函数被调用时所传入的参数.
  c.函数的参数可以是另一个函数变量
  function fun1(){alert("fun1");}
function fun2(){alert("fun2"); }
function fun3(f){alert("fun3");f(); }
fun3(fun1); 
  2)Object对象
  java Student类 Student student = new Student();
  js:没有类的概念
  a.通过构造函数创建对象
  var student = new Object();
student.name = "rose";
student.age = 25;
student.getName = function(){return this.name;}
//2.json创建对象(推荐)
var student = {name:"jack",age:24, getName:function(){ return this.name;} }
3)Array数组
a.通过构造函数创建数组
var arr = new Array();//new Array;
b.json创建数组
var arr = [1,2,"jack"];
--java 中数组特点:
int[] arr = new int[10];
i.长度不可变
ii.一种类型的数组只能存储同种类型的数据
--js中数组特点:
i.长度可变
ii.可以存储任意类型的数据
c.数组常用API:
length:属性,返回数组长度
toString:返回数组的字符串表示
concat():用于连接两个数组 ,返回一个新数组
join(";"):用于将数组中的各个元素以";"号连接成字符串
reverse():将数组反转.返回一个原数组,没有形成新的数组
slice(m,n):用于截取数组的一部分[m,n),并以数组形式返回

--数组作为堆栈使用
push():压入
pop():弹出
--数组作为队列使用

  shift():删除并返回数组的第一个元素

   
--数组排序
sort():以字符串方式比较

数组排序自定义:
比较数字大小:
sort(function(a,b){
return a-b;//升序
return b-a;//降序
});
比较字符长度:
sort(function(a,b){
return a.length-b.length;//升序
return b.length-a.length;//降序
});
4)String
java: String s = new String("jack");  String s = "jack";
js: var s = new String("jack"); var s = "jack"; s = 'jack';
常用API:
length属性:返回字符串的长度(java 中 Str.length())
charAt(index):返回指定位置的字符
substring(from,to):返回子字符串(区间左闭右开)
indexOf(str):指定字符串在原字符串中第一次出现的位置,找不到返回-1
match(regex):返回匹配指定正则表达式的字符串,返回的结果是一个数组
var reg = /[0-9]+/g;//global 搜索全局
var arr = s.match(reg);

var reg = /^$/;
reg.test(tel):判断字符串tel是否按照正则表达式的规范

replace(reg,""):替换符合正则表达式的字符串
toLowerCase()/toUpperCase():返回小写/大写形式
search(reg):返回按照正则表达式检索的字符串位置
split(","):以","分割字符串,返回数组

练习:
var arr=["aa34bb12","cc2dd5","qq1ww33"];
找到数组arr中所有的数字,弹出框显示所有数字的升序排列
5)Date
java:java.util.Date
java.sql.Date
java.sql.Timestamp
js: var d = new Date()
d.toLocaleString():按照当前国家显示日期的习惯来显示日期

2010 10 1 13:14
显示特定某天日期
var l = Date.UTC(2010,9,1,5,15);//月份从0开始,小时加时区
var d = new Date(l);

常用API:
getYear():距离1900年相差多少年
getFullYear():实际年份
getMonth():月份(从0开始)
getTime():距离1970年的毫秒数
getDay():星期几
getDate():当月的几号
getHours(): 时
getMinutes():分
getSeconds():秒

6)Math
处理算术运算

Math.round():四舍五入
Math.ceil():对于小数,向上升值
Math.floor():截取掉小数数据,取整数有效位
Math.random():0~1的随机数

js:foreach
a.遍历数组
for(idx in arr)//idx 迭代数组的下标值

b.遍历对象的属性
for(prop in student)//prop 迭代对象的属性名

5.事件监听
事件是可以被javascript监测到的行为。

1)一般性事件
几乎适用于全部的可显示标签
onclick:单击
ondblclick: 双击
onmouseover:鼠标移上
onmouseout: 鼠标移出
onmousedown: 鼠标左键按下
onmouseup: 鼠标左键松开

2)页面相关事件(body标签中)
onload:页面加载之后触发
onscroll:页面滚动时触发

3)表单相关事件
onblur:当前元素失去焦点时触发<input>
onchange: 用户改变域的内容<select>
onfocus:获得焦点时触发
onsubmit:提交按钮被点击时触发<form>
return true|false 为true就提交表单,反之不提交
注意:
浏览器对某些html标签产生的事件有默认的行为
比如:
表单提交数据
点击链接,会跳转到href指向的地址。
阻止链接跳转:
<a href="#|javascript:void(0);">


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值