js语法基本沿袭了c的语法特点,如果学过c的朋友来开发js是非常容易入门的
- 变量/常量
const a = 100; //定义常量,不可变,强制更改会报错,另一种实现方式是闭包,请看javascript进阶篇里的闭包
var b = 'bob'; //定义变量,通过var可以定义任意类型(目前是这样的哈)
typeof(b); //输出string,typeof方法是系统内置函数,用来检测变量类型
- 定义变量可以通过var 来定义,同时可以不用写var 直接用 c=true,区别在于前者是局部变量,后者是全局变量,我们提倡全部使用var来定义,这样不会对变量环境造成污染,如果你想定义一个全局变量,可以写在函数(函数下面会讲解)外面,或在js模块的开始定义。
- 数据类型
数据类型 | 含义 |
---|---|
string | 字符串 |
boolean | 布尔true/false |
number | 数字 |
array | 数组 |
object | 对象 |
undefined | 未定义 对象不含有值 |
null | 空值 |
- 操作实例
var str = 'hello'; //定义字符串
var str1 = str + 'world' //字符串拼接 输出 helloworld
var bol = true; //定义布尔类型变量
typeof(bol); //输出变量类型boolean
var num = 10; //定义num数字变量
var num1 = num - 5.5; //数字变量操作,输出4.5 ,num整型会自动转化为浮点类型
var arr = ['he','llo','world','!']; //定义数组
arr1=arr.join(''); //数组拼接 输出helloworld!
var obj = {'name':'bob','sex':'1'} //定义对象object
console.log(obj.name); //输出bob
document.write(obj['sex']); 输出1
- 运算符
运算符 | 含义 |
---|---|
+ | 加号,数学运算和字符串连接符 |
- | 减号,位于字符串前可将字符串类型转换为数字(取反) |
* | 乘 |
/ | 除 |
% | 取余 |
++ | 自加 |
-- | 自减 |
= | 赋值 |
+= | 符号左边元素等于符号左边元素加上右边元素,可用于数值和字符串 |
-= | 符号左边元素等于符号左边元素减去右边元素,数值运算 |
*= | 符号左边元素等于符号左边元素乘右边元素 |
/= | 符号左边元素等于符号左边元素除右边元素 |
%= | 符号左边元素等于符号左边元素对右边元素取余 |
delete | 运算符删除对以前定义的对象属性或方法的引用 |
void | 运算符对任何值返回 undefined,用于避免输出不应该输出的值 |
~ | 位运算符 NOT |
& | 位运算符 AND |
竖杠(编辑器原因) | 位运算符 OR |
^ | XOR 当前为两个不同为1 |
<< | 左移运算 1<<10 = 1024 |
>> | 有符号右移 |
>>> | 无符号右移 |
! | 非 |
&& | AND 并且 |
双竖杠 | OR 或者 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 当且仅当两个运算数相等时,它返回 true (如果类型不同则转换) |
!= | 当且仅当两个运算数不相等时,它返回 true (如果类型不同则转换) |
=== | 当且仅当两个运算数相等并且类型相同时,它返回 true ,不做类型转换 |
b?c:d | 如果b成立则执行c,否则执行d |
* 运算符不做过多案例,下面的文章中都会慢慢渗透
- 条件判断IF-ELSE
var _a = 2; //定义一个变量_a
if(_a=1){
document.write(_a) //如果_a的值是1,则输出1
}else{
_a=1;
docuement.write('change!') //如果不是1,则把_a的值设为1,并输出change!
}
//当然else if(){}在多种条件并存的情况下就有用武之地了~
- switch-case条件判断语句和if-else语句都可以用来做条件判断使用,if-else的使用范围更广,同时也更常用一些。而switch-case语句在特定条件下使用可以使文档脉络更加清晰。
var day=new Date().getDay();
switch (day)
{
case 0:
x="Today it's Sunday";
break;
case 1:
x="Today it's Monday";
break;
case 2:
x="Today it's Tuesday";
break;
case 3:
x="Today it's Wednesday";
break;
case 4:
x="Today it's Thursday";
break;
case 5:
x="Today it's Friday";
break;
case 6:
x="Today it's Saturday";
break;
}
//这里从W3C上找来一个例子,在我经历过的项目中,使用switch来做条件判断的真不多。
- 循环遍历
- for 循环 (a,b,c) a语句为循环开始前定义,b是循环运行条件,c是代码块执行一次后运行代码
var count=0; //定义变量count,用于存储和
for(var i =0;i<=10;i++){ //定义开始条件i=0;循环运行条件i<=10;代码块执行一次后运行代码i++;
count+=i; //求和 0-10
}
document.write(count); //输出0-10 的和
- for-in循环,一般用于遍历json对象
var _list=[{'name':'bob','sex':'1'},{'name':'lisa','sex':'0'}]; //定义一个json数组
for(x in _list){
document.write(x['name']); //遍历数组,输出对象的名字
}
- while 循环,一般用于单条件
var x=0; //同样使用for循环的例子,求0-10的和
var count=0;
while(x<11){
count+=x;
x+=1;
}
- do-while 循环,和while相同,只是无论条件是否成立,都执行一次代码块
var x=0,count=0;
do{ //同样使用for循环的例子,求0-10的和,但先执行do模块,然后再判断while条件。
count+=x;
x+=1;
}while(x<11);
- try-catch-finally 错误捕捉,我们不能说优秀的程序员都会用,但我认为严谨的猿用上还是靠谱的。
try{
//TODO something 业务逻辑都写在这里面
}catch(e){
//当然这里也是可以执行代码的
console.log('报错啦:'+e);
}finally{
//去做你想做的事,谁也阻挡不了你
console.log('我在最后执行,无论上面是否捕捉到错误~');
}
看到这里应该可以搞些事情了。。。