语法基础

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('我在最后执行,无论上面是否捕捉到错误~');
}

看到这里应该可以搞些事情了。。。

你可能感兴趣的:(语法基础)