JavaScript基础学习
javascript基础
js中的注释
单行注释(格式://注释内容)
多行注释(格式:/* 注释内容 */)
文本注释(格式:/** 注释内容 */)
js语句
例如: var num = 8;
我能用var定义了一个保存数字8的变量num
语句块:{声明内容的区域}
注意:js语句块是由 { } 组成的
标识符
用标识符来组成合法的变量,常量或函数名等(不然不符合规范有的会报错的)
例如:let num = 8;中的num就是一个标识符
硬性规则(这个是必须遵守的不然js会报错)
只能使用数字、字母、下划线(_)和美元符号($)
数字不能作为开头
js中的保留字和关键字不能使用
严格区分大小写
软性规则(不是必须遵守,但遵守的话会给你写代码带来便利)
望文知意
尽量命名规范让别人一看就知道你写的是什么,一看就懂大概的意思,例如:团队开发
命名方案
驼峰命名法(小驼峰,大驼峰)
小驼峰 例如:username 第一个单词首字母小写,后面其它单词开头都大写
大驼峰 例如: username 里面的所有单词都是首字母大写
匈利亚命名法
例如:c_username c为改标识符的类型
蛇形命名法
例如:usr_name
保留字与关键字(别看着多以后用着用着就差不多就认识了)
保留字
abstract 、 enum 、int 、 short 、 boolean 、export 、interface、 static、 byte 、extends 、 long 、 super 、 char 、 final 、native 、synchronized 、 class 、float 、 package 、throws 、 const 、goto 、private 、transient 、 debugger 、 implements 、protected 、 volatile 、 double 、import 、public
关键字
break、else、new、var、 case、 finally 、 return、 void 、 catch 、for 、switch 、 while 、 continue、 function 、this 、 with 、default 、 if 、 throw 、 delete 、 in 、 try 、do 、 instranceof、 typeof
数据类型
简单数据类型
number ===>整数,小数
string ===>以单引号或者双引号括起来的文本
boolean ===>true或false
undefined ===>undefined其实就是由null演变而来的
null ===>null
symbol ===>一般用于对象的属性命名
复杂数据类型
object(后面学习)
变量
声明变量:var、let、const(推荐使用es6的新关键字let和const)
重复声明的变量
var声明的变量是可以覆盖的
例如:var a= 5; var a=6;最后a的值为6
let和const是不允许的(同一范围内)
变量的作用域
全局作用域
在整个文档的区域,拥有全局作用域的变量叫做全局变量
无论在js那个区域都可以找到它
局部作用域
es5及之前,指通过函数产生的作用域(函数作用域);es6,let和const的引入,加入块级作用域的概念“{}”,其变量叫局部变量
例如:{let a = 5;}这个用let声明的变量a就只有在—{}内部访问变量a,这个 { } 是个块级
注意:没有关键字的变量,有特殊处理,是全局的
例如:name = "me"; 该变量前面没有使用var,let或count定义所以会进行特殊处理
变量提升
- 所有通过var声明的变量,变量的声明部分会提升到当前作用域的最顶端
var和let区别
var是es5,let是es6
var可以重复声明,let不可以
var有变量提升,let不可以
var的局部作用域只有函数作用域,而let包含函数作用域和块级作用域
运算符
字符串运算符
+ 拼接运算符
``(就在键盘~那儿) 模板运算符可以实现无缝拼接
例如:`我的名字${name}`;
特点:可换行(其中的空格,换行,制表都不会产生错误,且会被解析)
算数运算符
+、-、*、/、%、**(求幂es6)、--、++
++、--分前缀和后缀,前缀表示先执行该运算,再参与其所在表达式,后缀恰好相反
== ===(全等于) != !==(全不等于):“全”表示必须一模一样才会相等,没有类型的自动转换发生
逻辑运算符
&&、&、||、|、!
比较运算符
>、>=、<、<=、==、===、!=、!==
赋值运算符
=、+=、-=、*=、/=、%=
三目运算符
【表达式1】?【表达式2】:【表达式3】
数据类型转换
显示转换
tostring() 转换为字符串
例如:let name = 8;
let b = name.tostirng();
console.log(b);
会输出字符串8
string()
string("变量");
number()
number("123dfsf");
遇到d就停止只返回了123
parsefloat()
parsefloat(2.123)
返回0.123小数部分
parseint()
parseint(12.34)
返回12整数部分
boolean()
boolean(a>b);
返回true或false
隐士转换
js自动就转换了(内部)