Python基础第26天

                                                                             

                                                                                            JavaScript 的基础学习

JavaScript:  1:ECMAScript

                         2:DOM  文档对象模型

                         3:BOM  浏览器对象模型

一:引入方式

 

{#1 直接编写#}
    <script>
        alert('hello yuan')
    </script>
{#2 导入文件#}
    <script src="hello.js"></script>

二:基础

1: 变量命名,首字符只能是字母,下划线,$美元符 三选一,且区分大小写,x与X是两个变量

2 :变量还应遵守以下某条著名的命名规则:    

   Camel 标记法
   首字母是小写的,接下来的字母都以大写字符开头。例如:
   var myTestValue = 0, mySecondValue = "hi";
  Pascal 标记法
  首字母是大写的,接下来的字母都以大写字符开头。例如:
  Var MyTestValue = 0, MySecondValue = "hi";
  匈牙利类型标记法
  在以 Pascal 标记法命名的变量前附加一个小写字母(或小写字母序列),说明该变量的类型。例如,i 表示整数,s 表示字符串,如下所示“
  Var iMyTestValue = 0, sMySecondValue = "hi";

3 : 注释 支持多行注释和单行注释. /* */  //

4 使用{}来封装代码块

三:数据类型

Null & Undefined

Undefined 类型

Undefined 类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。

当函数无明确返回值时,返回的也是值 "undefined";

Null 类型

另一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(在讨论 typeof 运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 nullvar person=new Person()

var person=null

类型查询函数(typeof

函数typeof :查询数值当前类型
 (string / number / boolean / object )

例如typeof("test"+3)      "string"
例如typeof(null)          "object "
例如typeof(true+1)        "number"
例如typeof(true-false)    "number"

四:运算符

递增(++) 、递减(--)

 

var i=1;

console.log(i++);  2
console.log(++i);
console.log(i--);  0
console.log(--i);
 

逻辑 AND 运算符(&&)

逻辑 AND 运算的运算数可以是任何类型的,不止是 Boolean 值。

如果某个运算数不是原始的 Boolean 型值,逻辑 AND 运算并不一定返回 Boolean 值:

  • 如果一个运算数是对象,另一个是 Boolean 值,返回该对象。 
  • 如果两个运算数都是对象,返回第二个对象。 
  • 如果某个运算数是 null,返回 null。 
  • 如果某个运算数是 NaN,返回 NaN。 
  • 如果某个运算数是 undefined,返回undefined

for 循环

for循环基本格式
for (初始化;条件;增量){
    语句1;
    ...
}
功能说明
实现条件循环,当条件成立时,执行语句1,否则跳出循环体

for 循环实现100以内加法:

for(var sum=0,i=0;i<101;i++){
        sum+=i;
    }
    console.log(sum);
View Code

异常处理

try {

    //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
}
catch (e) {
    // 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。
    //e是一个局部变量,用来指向Error对象或者其他抛出的对象
}
finally {
     //无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
 
//异常
    try{
        console.log(123);
        throw Error('define error')
    }
    catch(e){
        console.log(e);
    }
    finally {
        console.log('finally')
    }

六:对象(类)

object对象ECMAScript 中的所有对象都由这个对象继承而来;Object 对象中的所有属性和方法都会出现在其他对象中

11种内置对象

包括:

Array ,String , Date, Math, Boolean, Number  Function, Global, Error, RegExp , Object

1:String对象

  • 创建字符串对象两种方式:

 

//创建字符串对象两种方式
    var str1='hello';
    var str2=new String('hello2');
    console.log(typeof str1);
    console.log(typeof str2);

 

字符串属性:

//属性
    console.log(str1.length);

方法(一)编排方法

//方法(一)编排方法
    console.log(str1.italics());  //<i>hello</i>
   console.log(str1.bold());

方法(二)大小写转换、获取指定字符

//(二)大小写、获取指定字符
    var str1='AcvbnFHh';
    console.log(str1.toLocaleLowerCase());
    console.log(str1.charAt(5));
    console.log(str1.charCodeAt(5));
    console.log(str1.indexOf('n'));
    console.log(srt1.lastIndexOf('n'));

    var str1='hello';
    console.log(str1.substr(1,3));////x.substr(start, length)
    console.log(str1.substring(1,3));//x.substring(start, end)
    console.log(str1.slice(1,3));//x.slice(start, end)
    console.log(str1.replace('ll','hh'));//x.replace(findstr,tostr)
    console.log(str1.concat('ghj'));

Array对象

//Array
    var arr1=[1,2,3,4,'hello',[11,2],{'name':'yuan'}];
    var arr2=new Array(4);//4是大小
    var arr3=new Array(1,'world',true,[12,3]);
    console.log(arr3);
    
    
    var cnweek=new Array(7);
    cnweek[0]="星期日";
    cnweek[1]="星期一";
    cnweek[2]="星期二";
    cnweek[3]="星期三";
    cnweek[4]="星期四";
    cnweek[5]="星期五";
    cnweek[6]="星期六";
    for (var i=0;i<cnweek.length;i++){
      document.write(cnweek[i]+" | ");
    }
    var arr5=[1,2,3,4,5];
    var ret=arr5.join('**');
    console.log(ret);

Array对象的方法

方法如下:

//tosring
    var arr5=[1,2,3,4,5];
    var ret2=arr5.toString();
    console.log(ret2);
    console.log(typeof ret2);//string
    //concat
    var arr5=[1,2,34];
    var ret3=arr5.concat([4,'hj']);
    console.log(ret3);
    console.log(typeof ret3);//object
//    //reverse
    var arr6=[10,45,100,87];
    console.log(arr6.reverse());
    console.log(arr6.sort());
    function f(a,b) {
        if(a>b){
            return 1
        }
        else if(a<b){
            return -1
        }
        else{
            return 0
        }

    }
    //或者:
    function f2(a,b) {
        return a-b
//
    }
    console.log(arr6.sort(f));
    console.log(arr6.sort(f2));
    // splice
    var a=[1,2,3,4,5,6,7];
    a.splice(1,2);
    a.splice(1,0,44,6);
    var arr7=[1,2,3];
    //push pop 栈操作
    arr7.push([7,8,0]);
    arr7.push('hello',6);
    console.log(arr7);
    console.log(arr7.length);

    console.log(arr7.pop());
    console.log(arr7.length);

    //shift unshift  栈操作
    var arr8=[4,5,6];
    arr8.unshift([11,222]);
    arr8.unshift(true,'ii');
    console.log(arr8);

    console.log(arr8.shift());

Date对象

创建data对象

//方法1:不指定参数
var nowd1=new Date();
alert(nowd1.toLocaleString( ));
//方法2:参数为日期字符串
var nowd2=new Date("2004/3/20 11:12");
alert(nowd2.toLocaleString( ));
var nowd3=new Date("04/03/20 11:12");
alert(nowd3.toLocaleString( ));
//方法3:参数为毫秒数
var nowd3=new Date(5000);
alert(nowd3.toLocaleString( ));
alert(nowd3.toUTCString());

//方法4:参数为年月日小时分钟秒毫秒
var nowd4=new Date(2004,2,20,11,12,0,300);
alert(nowd4.toLocaleString( ));
//毫秒并不直接显示

Function 对象(重点)

1:函数的定义

function 函数名 (参数){
函数体;

    return 返回值;
}

2:函数的创建

function 函数名 (参数){
    
函数体;
   return 返回值;
}
//another way:
var 函数名 = new Function("参数1","参数n","function_body");


//函数的创建一
     function f(x,y) {
         alert(123);
         return x+y;

     }
     console.log(f(23,897));
//     //函数的创建二:
     var obj=new Function('name','console.log(\'hello\'+name)');
     obj('武大');

注意:js的函数加载执行与python不同,它是整体加载完才会执行,所以执行函数放在函数声明上面或下面都可以:

<script>
    //f(); --->OK

    function f(){
        console.log("hello")

    }

    f() //----->OK
</script>
View Code

3:函数的调用

function func1(a,b){

    alert(a+b);
}

    func1(1,2);  //3
    func1(1,2,3);//3
    func1(1);    //NaN
    func1();     //NaN

    //只要函数名写对即可,参数怎么填都不报错.

-------------------面试题-----------
 function a(a,b){
    alert(a+b);
}

   var a=1;
   var b=2;
   a(a,b)

4:函数的内置对象arguments

function add(a,b){

        console.log(a+b);//3
        console.log(arguments.length);//2
        console.log(arguments);//[1,2]

    }
    add(1,2)

    ------------------arguments的用处1 ------------------
    function nxAdd(){
        var result=0;
        for (var num in arguments){
            result+=arguments[num]
        }
        alert(result)

    }

    nxAdd(1,2,3,4,5)

//     ------------------arguments的用处2 ------------------

    function f(a,b,c){
        if (arguments.length!=3){
            throw new Error("function f called with "+arguments.length+" arguments,but it just need 3 arguments")
        }
        else {
            alert("success!")
        }
    }

    f(1,2,3,4,5)
View Code

5:匿名函数

// 匿名函数
    var func = function(arg){
        return "tony";
    }

// 匿名函数的应用
    (function(){
        alert("tony");
    } )()

    (function(arg){
        console.log(arg);
    })('123'):

6:函数的作用域

 var city = 'beijing';

    function func(){
        var city = 'shanghai';
        function inner(){
            var city = 'shenzhen';
            console.log(city);
        }
        inner();
    }
    func();

    
    
var city = 'beijing';
function Bar(){
    console.log(city);
}
function func(){

    var city = 'shanghai';
    return Bar;
}
var ret = func();
ret();
View Code

下一节  BOM对象。。。。。

 

 

 

 



























 

posted @ 2017-04-09 18:03  清风徐来xyd  阅读(195)  评论(0编辑  收藏  举报