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 运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。 var 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);
异常处理
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>
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)
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();
下一节 BOM对象。。。。。