JavaScript语法

JavaScript版本

历史版本
  • ES3,IE6支持,不给力
  • ES5,不给力
  • ES6,大部分浏览器支持,一半给力,一半不给力
  • ES2019与ES6差距不大
ES6一半给力,一半不给力?
  1. ES不能删除以前的特性,要兼容旧网站
  2. 以前能运行的网站,以后也能运行
  3. 相对比较稳定

JavaScript语法

表达式\语句\标识符
表达式
  1. 1+2表达式的值为3
  2. add(1,2)表达式的值为函数的返回值
  3. console.log // log(){[native code]} 表达式的值为函数本身
  4. console.log(3) // undefined console.log(3),它的返回值是undefined,因为console.log函数的返回值是undefined
语句
  1. var a = 1是一个语句
  2. var $1 = 1;var _____ = 1;//不建议这么写;var 9a = 1;//报错,语法错误
  3. ;;;//不会报错,空语句
两者区别
  1. 表达式一般有值,语句可能有可能没有
  2. 语句一般会改变环境(声明,赋值)
  3. 上面两句话并不是绝对的
特别注意
  • 大小写敏感
    1. var a与var A不同
    2. object与Object不同
    3. function与Function不同
  • 空格
    1. 大部分空格都没有实际意义
    2. var a = 1和var a=1无区别
    3. 加回车大部分时候无影响
    4. 只有一个地方加回车,那就是return后面,代码举例
function f(){ return 
    3;
} //预想的是返回3,结果加了回车,返回了undefined;

######标识符

  1. 第一个字符,可以是Unicode字母或者$或_或中文
  2. 后面的字符,除了上述所说,可以是数字
  3. 变量名是标识符
//以下js都是支持的
var _ = 1;
var $ = 1;
var ______ = 6;
var 你好 = 'hi'
注释
  • 不好的注释
//1.把代码翻译成中文
var person = {
	name:'java'; //name为java
	age:18; //年龄为18
	sex:'男'; // 性别为男
}
//2.过时的注释
var person = {
	age:19; //年龄为18
}
//3.发泄不满的注释
var person = {
	eat:'哈哈';//我擦,就是个傻X
}
  • 好的注释
    1. 踩坑代码
    2. 代码为啥这么写,遇到什么bug
区块block
//1.把代码包在一起
{
	let a = 1;
	let b = 2;
}
//2.常常与if/for/while合用
条件语句
//1.if语句
if(){}else{}
/*
//变态情况
11.条件表达式里面赋值,如a=1
*/
var a = 2;
if( a = 1){console.log("彩笔");}else{console.log("牛逼");}//彩笔
/*
//变态情况
12.多层嵌套if-else
*/
/*
//变态情况
13.缩进
*/
var a = 1;
if( a === 2) console.log(1)  
	console.log(2) //2
//14.推荐用法
if(表达式){
	语句;
}else if(表达式){
	语句;
}else {
	语句;
}
//2.switch语句
switch(age){
	case 18:
	//...
	break;
	case 19:
	//...
	break;
	default:
	//...
}
/*
要注意break不能随意省掉
*/
//3.三目运算符 表达式? 表达式2:表达式3
//4.逻辑&&
A && B && C && D;//取第一个假值或者D,并不会取true/false
//5.逻辑或
A || B || C || D;//取第一个真值或者D,并不会取true/false

######循环语句

  1. while
while(表达式){语句}
//举例
var i = 1while(i<10){
	console.log(i);
	i = i+1;
}//在chrome中输出0,1,2,3,4,5,6,7,8,9,10 正确打出0~9,10chrome出bug啦
//这种写法不要写
while(true){console.log(1)};//耗CPU性能
//这种写法会进入死循环,原因浮点数精度丢失导致
var a = 0.1;
while(a < 1){
 a = a + 0.1;
}
  1. for
for(var i=0;i < 5; i ++){
	console.log(i);
}//最后输出的是0,1,2,3,4,i= ? i为5

在这里插入图片描述

break/continue

1.break退出本次循环

for(var i = 0; i < 5;i++){
	if(i === 3){
		break;
	}
}

2.continue 进行下一个循环

for(var i = 0; i < 5;i++){
	if(i === 3){
		continue;
	}
}
label

1.语法

foo:{
	console.log(1);
	break foo;
	console.log(2);
}//1
//Chrome输出的是一个对象,在火狐里面是1
{
  foo:1
}
//Chrome输出的1,在火狐里面是1
{
	foo:1;
}
已标记关键词 清除标记
11-01 4万+
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页