JavaScript基础语法介绍 JavaScript介绍 1.1 JavaScript是什么 是一个运行在浏览器上的编程语言。
1.2JavaScript书写位置 内部式:
1 2 3 4 5 <body> <script > alert ('hey' ) </script > </body>
外部式:
1 2 3 4 <body> <script src ="./my.js" > </script > </body>
使用外部时,script标签里面不要写内容,否则会被忽略。
1.3JavaScript输入输出语法 输出语法1:
1 2 3 4 5 6 <body> <script > document .write ('hey' ) document .write ('<h1> 一级 </h1>' ) </script > </body>
输出语法2:
1 2 3 4 5 <body > <script > alert ('hey' ) </script > </body >
输出语法3:
1 2 3 4 5 <body> <script > console .log ('haha' ) </script > </body>
输入语法1:
prompt输入类型为字符串。
1.4 字面量 比如2000 是数字字面量,’hahaha’是字符串字面量,[]数组字面量,{}对象字面量
变量 2.1 变量是什么 白话:用来装数据的盒子。可以用来存放数据。
2.2 变量的基本使用 (与c语言定义类似)
1.声明变量
age为变量。
2.变量赋值
variable为变量,18为字面量。
变量不允许多次定义。
小小的变量使用一下:
1 2 3 4 5 6 <body> <script > let n=prompt ('请输入' ) document .write (n) </script > </body>
2.3 变量命名规则与规范 1. 规则 ①不能用关键字。
②只能用下划线、字母、数字、$组成,且不能用数字开头。
③字母严格区分大小写。
2.规范 ①起名要有意义。
②遵守小驼峰命名法。
数组 1.1 声明数组
1.2 数组的基本使用 1 2 console .log (arr[0 ]) console .log (arr.length )
常量 1.1 基本使用
常量不允许重新赋值,声明的时候必须赋值。
数据类型 js为弱数据类型语言,只有赋值了才知道是什么数据类型。
基本数据类型 number 数字型
string 字符串型
boolean 布尔型
undefined 未定义型
null 空类型
引用数据类型 object 对象
1.数字类型 数字类型可以由+ - * / %各个符号进行运算。
NaN (not a number):表示计算错误。
NaN是粘性的,任何对NaN的操作都会返回NaN。
2.字符串 通过单引号、双引号或反引号包裹的数据都叫字符串。
字符串拼接: 1 2 3 4 console .log ('12' +'34' ) let a='k' let b='q' console .log (k+q)
模板字符串: 1 document .write (`大家好,我叫${name} ,今年${age} 岁` )
3.布尔型 (bollean) 1 2 let n=true console .log (n)
4.未定义类型 (undefined) 1 2 let numconsole .log (num)
5.空类型 (null) 1 2 let obj=null console .log (obj)
如果一个变量里面确定存放的是对象,如果还没准备号对象,可以放个null
6.检测数据类型
7.类型转换 隐式转换 +号两边只要有一个是字符串,都会把另外一个转成字符串。
除了+以外的算数运算符,比如- * /等都会把数据转成数字类型。
1 2 3 4 console .log ('数字' + 1 ) console .log ('1' + 1 ) console .log ('1' - 1 ) console .log (+'123' )
显示转换 通过函数来进行数据转换:
1 2 Number (str) let num = +prompt ('输入' )
parse系列:
1 2 3 4 parseInt (num) parseFloat (num) parseInt (12px) parseFloat (12. 86px)
运算 一元运算符 前置自增 1 2 let i=1 console .log (++i + 2 )
先自加再使用。
后置自增 1 2 let i=1 console .log (i++ + 2 )
先使用再自加。
1 2 let i=1 console .log (i++ + ++i + i)
比较运算符
NaN不等于任何人,包括它自己。
1 console .log (NaN === NaN )
if语句
条件中只有数字0或者空字符会触发false,其余都是true。
三元运算符 可以代替if双分支。
1 条件 ? 满足条件执行的代码 : 不满足条件执行的代码
例子:
1 2 3 4 5 6 if (3 <5 ){ alert ('真的' ) }else { alert ('假的' ) }
和
1 3 <5 ? alert ('真的' ) : alert ('假的' )
等价。
还可以作赋值操作:
数字补0例子 1 2 3 let num = prompt ('请您输入一个数字' ) num = num < 10 ? 0 + num : num alert (num)
输入9,输出09
输入11,输出11
数组 查询 1 2 let arr=[1 ,2 ,3 ]console .log (arr[0 ])
修改 1 2 3 let arr=[1 ,2 ,3 ] arr[0 ]=3 console .log (arr[0 ])
增加 push() 添加数组末尾
unshift() 添加数组开头
1 2 3 4 let arr=[1 ,2 ,3 ] arr.push (4 ) arr.push (4 ,5 ) arr.unshift (0 )
删除 pop() 弹出最后一个元素
shift() 弹出第一个元素
splice() 切片删除 //arr.plice(起始位置,删除几个)
1 2 3 4 5 6 7 8 let arr=[1 ,2 ,3 ] arr.pop () console .log (arr.pop ()) arr.shift () console .log (arr.shift ) arr.splice (1 ,1 ) arr.splice (1 ) arr.splice (1 ,2 )
函数
调用:
例如:
1 2 3 4 5 function sayhi{ console .log ('hi' ) }sayhi ()
异常处理语句 throw语句
使用这个语句后就会弹出error:
1 2 3 4 5 6 7 8 for (let i=1 ;i<=5 ;i++){ if (i!=4 ){ console .log ("yes" ); } else { throw "not 4" ; } }
try…catch语句 1 2 3 4 5 6 try { ... } catch (error){ console .error (error) }
catch块可以用来处理所有try块总产生的异常。
finally块 1 2 3 4 5 6 7 8 openMyFile ();try { writeMyFile (theData); } catch (e) { handleError (e); } finally { closeMyFile (); }
finally
块包含了在 try 和 catch 块完成后、下面接着 try…catch 的语句之前执行的语句。finally
块无论是否抛出异常都会执行。如果抛出了一个异常,就算没有异常处理,finally
块里的语句也会执行。
循环与迭代
其循环方式与c语言相似,不再一一赘述。
对象 一个对象就是一系列属性的集合,一个属性包含一个名和一个值。一个属性的值可以是函数,这种情况下属性也被称为方法 。
对象及其属性:
1 2 3 4 var myCar = new Object (); myCar.make = "Ford" ; myCar.model = "Mustang" ; myCar.year = 1969 ;
可以按如下方法访问对象:
1 2 3 myCar["make" ] = "Ford" ; myCar["model" ] = "Mustang" ; myCar["year" ] = 1969 ;
创建新对象 使用对象初始化器创建 1 2 3 4 5 6 7 var obj = { property_1 : value_1, 2 : value_2, ["property" + 3 ]: value_3, "property n" : value_n, };
使用构造函数创建 用构造函数创建分两种:
通过创建一个构造函数来定义对象的类型。(建议首字母大写)
通过 new
创建对象实例。
这里首先定义一个对象类型 ,并且赋予其make,model,year属性。
1 2 3 4 5 function Car (make, model, year ) { this .make = make; this .model = model; this .year = year; }
注意这里是通过this来给对象类型属性值赋值
然后你就可以创建一个新对象啦
1 var mycar = new Car ("Eagle" , "Talon TSi" , 1993 );
或者你也可以让类中加入一个owner:
1 2 3 4 5 6 function Car (make, model, year, owner ) { this .make = make; this .model = model; this .year = year; this .owner = owner; }
那么你就可以这样创建:
1 2 var car1 = new Car ("Eagle" , "Talon TSi" , 1993 , rand);var car2 = new Car ("Nissan" , "300ZX" , 1992 , ken);
就可以这样索引读取:
你也可以为之前定义的对象增加新的属性:
注意这里只是这个car1增加了新属性,不影响其他car1,car3
使用Object.create方法创建 及使用Object.create()函数创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var Animal = { type : "Invertebrates" , displayType : function ( ) { console .log (this .type ); }, };var animal1 = Object .create (Animal ); animal1.displayType (); var fish = Object .create (Animal ); fish.type = "Fishes" ; fish.displayType ();