JS学习第一天

#JS学习第一天

一.JS基础知识

javascript语言特点:

1.解释性语言

优点:跨平台
缺点:速度稍微慢
// 编译性语言
// 优点:速度快
// 不足:移植性不好(不跨平台)

2.单线程(同一时间只能做一件事)

3.JS三大部分

ECMAScript.DOM.BOM

4.主流浏览器及其内核

主流浏览器 内核
IE trident
Chrome webkit/blink
firefox Gecko
Opera presto
safari webkit

5.JS引入方式

1>.页面级js文件:写在页面任意地方

2>外部引入:

6.JS基本语法

1>变量(variable)
var 变量声明
var a=100;
var b=200;
var c=300;
var a=10,
b=20,
c=30,
d=40,
e;(标准写法)

2>变量名命名规则:

(1).必须以英文字母,_,$开头

(2).变量名可以包括英文字母,_,$,数字

(3).不可以使用系统的关键字,保留字作为变量名原始值:(stack 栈)

     Number(数字类型):浮点型
     
     Boolean(布尔类型):true/false
     
     String(字符型):用双引号引起来
     
     Undefined:一个变量经过声明没有赋值
     
     null 占位
     
引用值(堆数据)

array Object function  date RegExp------

var arr =[1,2,3,4,5,false,"abc"]

6.基本语法
1> 语句后面加分号’;’

2>for if语句不用加分号

3>"=,+,/,-"两边都应该有空格

4>JS语法错误会引起程序报错,但不会影响后面的程序运行

   (1)低级错误:语法解析错误
   
   (2)逻辑错误:标椎错误,情有可原

7.运算符:"+"(加) “-”(减) “*”(乘) “/”(除) “%”(取余) “=”(优先级最弱) “()”(优先级最高)

     "++" "--"  "+=" "*=" "%="

1>.加号(有两种功能)

var a = “a” + “b”; 字符串连接

   注:任何数据类型加字符串都等于字符串

var a = 1 + 4 ; 数学计算

2>.减号

var a = 2-8; 结果:-6

3>.除号

var a = 0 / 0; 结果:NaN

4>.取余

var a = 5 % 2; 结果:1

var a = 4 % 7; 结果:4

5>. ++

    a++:表示先赋值,再加1  赋值的计算:自右向左     数字的计算:自左向右
    ++a:表示先加1,再赋值

6>.–
a–:表示先赋值,再减1
–a:表示先减1,再赋值

7>.+=

  a += 10; 相当于: a = a + 10;

8>.*=(乘等于)

  var a = 10;
  a *= 2;  相当于: a = a * 2

9>.%=

  var a = 0;
  a %= 2;  相当于:  a = a % 2;

8.比较运算符 :">" “<” “==” “>=” “<=” “!=”
比较运算符结果均为:true / false
var a = NaN == NaN;结果为:false(只有NaN不等于自身)

9.逻辑运算符:&&(与) ||(或) !(非)
注:undefined , null , NaN , “” , 0 ,false ==>转换为布尔值都为:false;

(1) && (如果前面为真,才执行后面的语句)先看第一表达式的值转换成布尔值的结果,如果结果为真,那么它会看第二个
        表达式转换为布尔值的结果 然后如果只有两个表达式的话,就可以返回该表达式的值
      例:var a = 1 && false && 1;
            结果:false
     
    var a = 1 + 9 > 10 && 5 / 3 =1
    结果:false (只有两边都为真才为真)

(2) || (碰到真就返回)

    var a =1 || 2;   结果:1
    
(3) !(非)
     
     var a = true; 
     a = ! a;         结果:false

10.条件语句:if,else,for,do while

(1)if
     if(1 > 0){
     	
     	document.write("值正确");
     }
         结果:值正确
         
     if(1 > 5){
     	
     	document.write("值正确");
     }
           结果:false  
           
           
(2) else (为if条件的补集)

(3) for 
 
             for (var i = 0; i < 10; i++){
             	document.write('a')
             }
             
                 结果:0 1 2 3 4 5 6 7 8 9
                       
              for (var i = 0; i < 100; i++){
         	     if (i % 3 == 0 || i % 7 == 0 || i % 5 == 0){
         		   document.write(i+" ");
          	}
          }               打印出能被 3.5.7整除的小于100的数字
             
(4)do while 

作业例题:

(1):计算2的n次幂,n可输入,n为自然数

   var n= parseInt(window.prompt('input'))
   
   var mul = 1;
   
   for (var i = 0;i < n ;i ++){
   	
   	mul *= 2;
   	
   }
   
   document.write(mul);

递归应用:典型的有阶乘和斐波拉契数列

递归:1.找规律 2.找出口

(2):计算n的阶乘.n可输入. 例如:5! = 54321*1;

    阶乘规律  :n!=n*(n - 1)!
            
    function mul(n){
    	if(n == 1 || n == 0){
    		return 1;
    	}
    	return n * mul(n-1);
    }    

(3):斐波拉契数列 如:1 1 2 3 5 8 输出第n项(前两位的和等于后一位)

      规律:fb(n) == fb(n-1) + fb(n-2);

// fb(5) ==> fb(4) + fb(3);
// fb(4) ==> fb(3) + fb(2);
// fb(3) ==> fb(2) + fb(1);

    function fb(n){
    	if(n == 1 || n == 2){
    		return 1;
    	}
    	return fb(n-1)+fb(n-2);
    }

(4):输入a,b,c三个数,找出最大值

      var a = parseInt(window.prompt('input'));
      var b = parseInt(window.prompt('input'));
      var c = parseInt(window.prompt('input'));
      
        if (a > b){
        	if (a > c){
        		document.write(a);
        	}else{
        		document.write(c);
        	}
        }else{
        	if (b > c ){
        		document.write(b);
        	}else{
        		document.write(c);
        	}
        }         

(5):打印出100以内的质数

     var count = 0;
     for ( var i = 1; i < 100; i ++){
     	for ( var j = 1; j <= i; j ++){
     		if (i % j == 0){
     			count ++;
     		}
        }
     	if (count == 2){
     			document.write(i+" ");
     	}
     	count = 0;
     }

(6):编写一个程序,输入一个三位数的正整数,输出时反向输出.如:输入123,输出321

11.条件补充语句:switch(里面放的条件)case,break(终止循环),continue(终止本次循环,开始下一次循环)

12.初始引用值

1>.数组:arr

    var arr = [1,2,3,4,5,6,7,10,11];
      for (var i = 0; i < arr.length; i ++){
      	arr[i] += 1;
      }

2>.对象(都为存储数据的仓库)

13.编程形式的区别

1>面向过程

2>面向对象(c++,java等语言)

14.typeof(返回数据类型)

 六种数据类型:number string boolean object undefined undefined function null(Object)占位

15.转换类型

1>显示类型转换

(1)Number(mix):转换为数字类型
       例如:将字符123转换为数字123
      var num = Number("123")  
(2)parseInt(String,radix(指多少进制)):转换为整型,只输出数字,遇到非数字截止
       例如:
        var num = parseInt(123.598);   结果:123
        
        将f转换为16进制的数 
        var demo = "f";
        var num = parseInt(demo,16)(此数字为:2-36)   结果:15
        
(3)parseFloat(String):转换为浮点型
(4)toString(radix):(undefined.null不能用 toString())
(5)String(mix)
(6)Boolean():布尔值

2>隐式类型转换

(1)isNaN()——>Number(将NaN中的结果用Number转换后再与NaN进行比较,相同为true,不同为false)

 console.log(isNaN(null)); console.log(Number(null));   结果:0  所以此结果为:false 
 
 console.log(isNaN(undefined));   结果:true

(2)++.--.+-(正负)

    var a = "123";经Number隐式转换
    a ++;       结果:124 类型:Number;

(3)-*/% ——>Number

(4)&& ||  !

(5)< > <= >=

(6)==.!=

3>不发生类型转换

(1)!==.===(绝对等于)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值