javascript概要
基础部分:
语言特点:解释型语言、动态语言、弱类型定义语言、函数式编程、基于原型的面向对象(可忽略)。
应该知道的一些概念:
解释型语言编写的程序是直接由运行环境执行的,需要的是源代码文件与解释器(运行环境),是解释一句执行一句。(php、python)
编译型语言编写的程序是需要编译和链接的,生成的是可执行代码(c)或基于某种运行环境的字节码(c#、java)。
动态语言是不需要(没有强制性)在变量定义时指定数据类型的,变量的数据类型是在运行时有上下文来判断的。(python、php)。
静态语言是指在变量定义时必须指定其数据类型的语言,如c,需要在变量声明时指定数据类型。
强类型定义语言是指一个变量在指定其数据类型后,必须经过显式的强制转换才能指定其他类型的语言。(c、java、python),但其中存在了一些隐式转换(不需要指定要转换的类型,解释器或编译器根据推断来指定要转换的类型,如 I = "kkkk";I = 1 ;之后变为了int型)。但不允许不同类型的变量进行运算。
弱类型定义语言是变量可以随时修改其数据类型的语言。(php、vb),可以进行不同类型的变量运算(运算规则可能发生了变化)。如
I = 1;I +=‘2‘;// I 的值变为了‘12‘ I = 1; I -=‘2‘; // I 的值变为了-1 |
?
javascript的数据类型
字符串型、数值型、布尔型、null、undefined //基本数据类型
Object类型为其构造类型,用于用户的自定义类型。(function类型是另一种构造类型,但我认为可以将他归于Object类型中,不必划分的过于细致,除非非的区分他俩时(判断一个变量的类型 ))。
?
数据类型 |
示例 |
说明 |
字符串型 |
var I =‘hello‘; var I = "hello"; var I = ‘hello "hhhh"‘; |
字符串使用双引号或单引号括起来表示,特殊字符可以通过转义字符来表示 |
数值型 |
var I = 1 ; |
数值的内部都是64位的浮点小数,但是没有直接指定的必要 |
布尔型 |
var I = true; var I = false ; |
? |
null |
var I = null; |
指定变量没有任何引用任何对象 |
undefined |
不主动使用 |
用于标定变量是否有其具体的意义 |
Object ( function ) |
var obj = { var I ;var I } ; //生成object类型 ? var func = function(){ ? };//生成function类型 |
用于构造用户自定义的数据类型,使用大括号来标记 ? |
补充:字符串型、数值型、布尔型都有对应的对象(String类、Number类、Boolean类),当通过字符串型的变量调用String类的属性或方法是,会发生隐式转换,其余几个也会有类似的。
数据类型转换:
Number(值);// 将值转换为数值型
String(值); //将值转换为字符串型,当含有不可转换的字符是,会转换成NaN
Boolean(值);//将值转换成布尔型,特别的,空字符串( "" )和0、null、NaN、undefined代表了false,其余的代表了true
?
javascript的语句、表达式、运算符 (结构)
应该知道的一些概念:
对应语句来说,最终都可以分解成保留字、表达式与符号(括号或者分号等),换句话说,语句的基本构成是保留字、表达式、符号,复杂语句是通过了很多的递归一类的操作形成的。
?
单条语句使用分号分隔,复合语句(代码块)使用大括号来分隔。
语句类型 |
示例 |
说明 |
变量声明语句 |
? | ? |
函数声明语句 |
? | ? |
表达式语句 |
? | ? |
控制语句 |
||
if-else |
? | ? |
switch-case |
? | ? |
while |
? | ? |
do-while |
? | ? |
for |
? | ? |
for-in |
? | ? |
for each in |
? | ? |
continue |
? | ? |
break |
? | ? |
return |
? | ? |
try -catch -finally |
? | ? |
with |
? | ? |
?
运算符
按优先级顺序排列 |
? | ? | ? | ? | ? | ? | |||||
. |
[ ] |
New |
? | ? | ? | ? | ? | ? | ? | ? | ? |
( ) |
? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
++ |
-- |
? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
! |
~ |
+(单目) |
-(单目) |
typeof |
void |
delete |
? | ? | ? | ||
% |
* |
/ |
? | ? | ? | ? | ? | ? | ? | ? | ? |
+ |
- |
? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
<< |
>> |
>>> |
? | ? | ? | ? | ? | ? | ? | ? | ? |
== |
!== |
=== |
? | ? | ? | ? | ? | ? | ? | ? | ? |
& |
? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
^ |
? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| |
? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
&& |
? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
|| |
? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
? : |
? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
= |
+= |
-= |
*= |
/= |
%= |
<<= |
? | ||||
, |
? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
?
注释:
// 单行注释
/* 多行注释 */
?
javascript中的数据对象
变量: var valueName ; //声明一个变量但没初始化
????????valueName = 1 ; // 进行初始化
???? var valueName = 1 ; //声明一个变量并初始化
应该知道的情况:
将类作为基本数据类型的扩充可以不用去考虑面向对象之类的东东,应为你只是个程序员,就是搬砖的,不需要考虑软件的设计部分。( 或者等你进阶之后,它才是你所需要了解的知识)。