一、第1章(1--4)
何为js特效
1、定义事件(触发时机+行为)
2、触发事件(行为发生)
3、事件发生是具有重复性
 
js是基本对象的语言。
面向对像编程
1、如何获得该对象
2、如何 调用该对象
3、如何调用该对象的方法
 
对象的组成 部分:
1、属性(特征)
2、方法(行为)
 
js标签旋置位置:
1.内联
2、内部
3、外部
 
内部JS一般写在body后面,因为代码是由上往下阅读,如果 写在上面,有可能Body还没开始执行 ,还找不到标签,id等信息。
 
js注释 :
  //
   /**/
 

字符串连接符“+”:
js中使用+来连接,加号首先是连接,然后才是数学运算,如果加号两边有一个字符 为字符串就进行连接,两边都是数字才进行运算。如果 是“-" 减号,就会强行进行运算如alert(100-'5'),虽然5是字符型,但他强制运算为95。

 
js变量
1.字符串:双引号、单引号
  str="hello world";
2.整型
  num=10;
3.浮点
  num=10.3;
4.布尔
  str=false;
5.数组

  1.var arr=[1,2,3];
  2.var arr=new Array(1,2,3);注意大写,我在sublime小写不行。

6.对象 
  1、DOM对象,就是document,就是标签对象
    eleobj=document;
 
  2、js 对象

    obj=new Object();

  例子:  

    obj=new Object();//对象
    obj.username='user1';//对象属性
    obj.age='20'
    obj.sex='nan';
    obj.say=function(){ //对象方法
    alert('my name is user11');
    }
    document.write('<h1>my nameis '+obj.username+'<h1>');
    document.write('<h1>my name is '+obj.age+'<h1>');
    obj.say();

7.json对象: 

  obj={'name':'user','age':'20'}

  例子:

    jsobj={'username':'user1',
        'age':'20',
        'sex':'nan',
        'say':function(){
        alert(this.sex);//this就是代表我自己(本对象)

        }
       };
alert(jsobj.username);
jsobj.say();

8.NaN
  not a number 不是一个数字,非数字
9.null   :js里小写
  空,对象类型
  str=null
  一般用于提前规划一些变量或变量赋初值
10.undefined
  未定义
 
 
函数
1.传统函数定义方法
  function say(){
    alert(1);
  } 
 
2.匿名定义方法
  say=function(){
    alert(1);
  }
 
say();//调用函数
  
变量作用域
在js中只有函数里面带var的是局部变量,其余全是全局变量!

1.全局变量
变量定义时前面如果没有var则全部都是全局变量

1、str='user1';
  function say(){
    alert(str);
  }
  say();

2、

  function say(){
    str='user1';
  }

  say();
  alert(str);

2.局部变量
只有在函数内部前面带var的变量为局部变量,局部变量只能在函数体内使用

function say(){
var str='user1';
}

say();
alert(str);

二、第2章(5-7)

类型测试

1、typeof();//判断变量类型

  

str="10";
if(typeof(str)=='string'){
  alert("是字符串");
}else{
  alert('不是字符串');
}

typeof()可判断的类型

1.string:字符串

2.number:整型和浮点型、NaN

3.boolean:布尔型

4.object:数组 、对象、JOSON,NULL

5.underfined:underfined

#一定要注意js中所有变量都是对象,只是为了区分 才分了上面5种。

2、arr instanceof Array;//可以测试数组类型

  arr是一个变量,数组名,

  instanceof :不能乱写,代表是arr是不是Array实例化出来的。

  Array:注意大写,类。

a=new Array(1,2,3);
alert(a instanceof Array);

顶级全局方法:前面不需要对象,拿来就能用,注意大小写。
• typeof();
• parseInt();强制转整型  

  str=''10abc;
  alert(Number(str)+5);  NaN
  alert(parseInt(str)+5);  15

• parseFloat();强制转浮点型
• eval();执行字符串内部表达式

  b='a=1+1';

  eval(b);

  alert(a);

结果2
• Number();有了parseInt,不需要用
• String();整型转字符串
• Boolean();

  num=10;

  alert(Boolean(num)+5);结果为6

  数字里除了0是假,其它都是真

  加号如果 两边不是字符型,就做数学运算,强制改变两边类型,布尔类型真为1,假为0

在JS中前面的对象不用写的两种情况

1、Global对象(js内部对象)

• typeof();//其实它的全是Global.typeof();//用的时候 不需要加Global
• parseInt();
• parseFloat();
• eval();
• Number();
• String();
• Boolean();

2、window对象(浏览器提供的标签对象,如dom对象)

• alert();//其实它的全是window.alert();//用的时候不需要加window

变量类型转换

1.整型->字符串

1)num=10;

  str=string(num);

2)num=10;

  str=num+'';

2、字符串->整型

  1)str='10px';

    num=parseInt(str);

  2)Number();现在不用了。

3、所有类型->布尔类型

1)Boolean();
2)!!data

如V ='0';

b=!!V;

4、所有类型->布尔类型(为假的情况)

1)字符串('')

2)整型(0)

3)浮点型(0.0)

4)null

5)NaN

6)undefined

如果 字符串里有个空格是真的。如a="  ";

json字符串转Josn对象

str="{'username':'user1','age':'20'}";

obj=eval('('+str+')');//加括号

alert(str);

结果:[object Object]

变量运算符:

1.+-*、%

2.in :检查某一个属性是否是这个对象里面的,数组里判断的是下标是不是在这个数组 中。

  1.arr=['a','b','c'];

   alert(a in arr);

  2. obj={'username':'user1','age':'20'};
      alert('username' in obj);

3.instanceof:检查某个对象是否是由某个构造函数产生的

4.delete://删除变量,不能删除用var(局部)定义的变量

 V='abc'

 delete(V);

js语法

1.if语句  

条件必须成立,只能命中其一,从上往下执行,从左往右执行。

  if(){
  }else if{
  }else{
  }

2.switch语句

条件只是等于,

week=5;
switch(week){
  case 1:
    alert('周一');
    break;
  case 2:
    alert('周二');
    break;
  case 3:
    alert('周三');
    break;
  case 4:
    alert('周四');
    break;
  case 5:
    alert('周五');
    break;
  case 6:
    alert('周六');
    break;
  default:
    alert('周日');
}  

3.while循环

i=0;
while(i<10){
document.write('<h1>'+i+'</h1>');
i++;
}

4.for 循环

for(i=0;i<3;i++){
document.write('<h1>'+i+'</h1>');
i++;
}

5.forIn遍历:对json对象进行遍历

obj={'username':'user1','age':'20','sex':'nv'};
for(i in obj){
document.write('<h1>'+i+'->'+obj[i]+'</h1>')
}

结果

username->user1

age->20

sex->nv

解释:第一次把obj的对象第一个属性赋给i,第二次把第二个属性赋给i,第三次........,那i的值 为username,age,sex

本来属性得到值是,obj.i,但JS里规定对象.属性,对象和方法名不可以是变量,现在i是变量,所以只能写成obj[i]

例子:

九九乘法表

for(i=1;i<=9;i++){
document.write('<h3>');
for(j=1;j<=i;j++){
document.write('<span>'+j+'x'+i+'='+(j*i)+'</span> ')
}
document.write('</h3>')
}

1.普通函数
function show(){}

function out(n=9,k=1){//定义默认值
for(i=1;i<=n;i++){
  document.write('<h3>');
  for(j=1;j<=i;j++){
    document.write('<span>'+j+'x'+i+'='+(j*i)+'</span> ')
  }
  document.write('</h3>')
}
for(j=0;j<k;j++){
  document.write('<hr>');
}

}
out(3,4) //调用函数out

2.匿名函数
obj.say=function(){}

out=function(n,k){

....

}

消息框

警告框:
alert();
确认框:
confirm();

<body>
<a href="http://www.baidu.com" id='s'>百度M</a>
</body>
<script>
aobj=dogopj=document.getElementById('s');
aobj.onclick=function(){
r=confirm('你确认去百度吗?');
if(!r){
return false;
}
}
</script>

提示框:
prompt();

<body>
<a href="http://www.baidu.com" id='s'>
<img src="" id='imgid'>
</a>
</body>
<script>
imgobj=document.getElementById('imgid');//获取JS对象
r=prompt('请输入图片名字');
img=r+'.png';
imgobj.src='.png'
</script>

js对象:

1.js内置对象
2.js事件对象(js内置对象之一,因为内容庞大,特别讲一下。)
3.BOM浏览器对象
4.DOM文档对象(document)

数学对象:
1.生成对象
Math;大写

2.属性

Math.PI:圆周率

3.方法
Math.ceil();取上一个整数,不舍

alert(Math.ceil(3.14));结果为4
Math.floor();取下一个整数,不入

alert(Math.ceil(3.54));结果为4
Math.round();四舍五入

alert(Math.ceil(3.14));结果为3

alert(Math.ceil(3.14));结果为3
Math.random();取随机数(0到1之间的小数)
Math.max();取最大数

  alert(Math.min(0,3,5));结果:5
Math.min();取最小数

  alert(Math.mxa(0,3,5));结果:0

例子:随机展示图

arr=['a.png','b.png','c.png','d.png','e.png'];
rand=Math.random();
tot=arr.length;
sub=Math.floor(rand*tot);

imgobj=doucment.getElementById('imgid');
imgobj.src=arr{sub};

  

js 自学,云知梦知识 点理论的更多相关文章

  1. HTML5 云知梦自觉,记录知识 点

    第一章(1--3) 文档类型:<!doctype html> 网站代码结构:<html> <head> <meta charset="UTF-8&q ...

  2. 2015 前端[JS]工程师必知必会

    2015 前端[JS]工程师必知必会 本文摘自:http://zhuanlan.zhihu.com/FrontendMagazine/20002850 ,因为好东东西暂时没看懂,所以暂时保留下来,供以 ...

  3. 微信小程序必知相关知识

    微信小程序必知相关知识 1 请谈谈微信小程序主要目录和文件的作用? project.config.json 项目配置文件,用得最多的就是配置是否开启https校验: App.js 设置一些全局的基础数 ...

  4. 《Ext JS模板与组件基本知识框架图----模板》

    最近在整理Ext JS的模板和组件,在参考<Ext JS权威指南>,<Ext JS Web应用程序开发指南>,<Ext JS API>等相关书籍后才写下这篇< ...

  5. js初学必知三重点

    这里列出了一些JS重要知识点(不全面,但自己感觉很重要).彻底理解并掌握这些知识点,对于每个想要深入学习JS的朋友应该都是必须的. 讲解还是以示例代码搭配注释的形式,这里做个小目录: JS代码预解析原 ...

  6. react.js 你应知道的9件事

    React.js 初学者应该知道的 9 件事   本文假定你已经有了一下基本的概念.如果你不熟悉 component.props 或者 state 这些名词,你最好先去阅读下官方起步和手册.下面的代码 ...

  7. JS自学笔记05

    JS自学笔记05 1.例题 产生随机的16进制颜色 function getColor(){ var str="#"; var arr=["0","1 ...

  8. JS自学笔记04

    JS自学笔记04 arguments[索引] 实参的值 1.对象 1)创建对象 ①调用系统的构造函数创建对象 var obj=new Object(); //添加属性.对象.名字=值; obj.nam ...

  9. JS自学笔记03

    JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=ge ...

随机推荐

  1. Python程序员的10个常见错误

    关于Python Python是一门解释性的,面向对象的,并具有动态语义的高级编程语言.它高级的内置数据结构,结合其动态类型和动态绑定的特性,使得它在快速应用程序开发(Rapid Applicatio ...

  2. 在ubuntu10.04 下将360wifi当无线网卡使用

    通过百度“360wifi linux“ 已经有很多解决方案.主要过程是从网上下载mt7601驱动包,编译出一个内核模块后,再通过modprobe 添加模块.下面描述的是基于我本机的特点所做的额外工作. ...

  3. C++中string.find()函数与string::npos

    先说说string::npos参数: npos 是一个常数,用来表示不存在的位置,类型一般是std::container_type::size_type 许多容器都提供这个东西.取值由实现决定,一般是 ...

  4. 【DB2】对两列分组之后判断另外一列是否有重复

    建立表数据如下: ),sex ),sex_nm ),OWER ),TYPE ),TYPE_NM )); ,','水果'), (,','水果'), (,','水果'), (,','水果'), (,',' ...

  5. Linux下配置两个或多个Tomcat启动

    Linux下配置两个或多个Tomcat启动 (2012-08-14 11:59:31) 转载▼ 标签: 杂谈 分类: linux_tomcat 步骤如下: (1)修改/etc/profile文件.添加 ...

  6. iOS 转盘动画效果实现

    代码地址如下:http://www.demodashi.com/demo/11598.html 近期公司项目告一段落,闲来无事,看到山东中国移动客户端有个转盘动画挺酷的.于是试着实现一下,看似简单,可 ...

  7. PL/SQL 异常错误处理

     异常错误处理 一个优秀的程序都应该可以正确处理各种出错情况,并尽可能从错误中恢复.ORACLE 提供异常情况(EXCEPTION)和异常处理(EXCEPTION HANDLER)来实现错误处理 ...

  8. linux 网络性能优化

    最近在对程序进行调优,涉及到了网络通信,学习了一下对网络调优的方法,网上的资料很多,针对软件优化方面,大体上主要有两种方式:一是网卡参数,另一个是内核参数. 一. 网卡参数优化 针对网卡参数优化,需要 ...

  9. Mac OS X中配置Apache后提示You don't have permission to access / on this server

    根据这篇博客http://www.cnblogs.com/snandy/archive/2012/11/13/2765381.html,在mac系统中,配置的apache,配置完成后,提示 You d ...

  10. 单例模式获取JDBC连接

    package com.jdbc.test; import java.io.IOException; import java.io.InputStream; import java.sql.Conne ...