这篇是讲JavaScript的基础的一些小杂项知识点。
JavaScript里有个叫标识符的概念,标识符是指变量、函数、属性的名字,或者函数的参数。
01.标识符的命名规范
- 以字母、下划线、或美元($)符号开头。
- 由字母、下划线、美元符号或数字组成。
- 不能使用JS的关键字或保留字,如果发现满足上述两个条件,但是却报错了,很可能是这第三条冲突了。
那么JS的关键字有哪些呢?看下面的两张表格,在命名的时候千万不能用这表格里的名字给标识符命名。
break | do | instanceof | typeof |
---|---|---|---|
case | else | new | var |
catch | finally | return | void |
continue | for | switch | while |
debugger | function | this | with |
default | if | throw | delete |
in | try |
保留字有这些。
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 |
02.JS语法中标识符是区分大小写的。
这也就是说变量名test和变量名Test是分别代表两个不同的变量。
03.JS中特殊值
- NaN:表示不是一个数字。这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。NaN有两个非同寻常的特点:首先,任何涉及NaN的操作(例如NaN/10)都会返回NaN;其次,NaN与任何值都不相等,包括NaN本身。为此ECMAScript定义了isNaN()函数来帮我们确定括号中传的参数是否“不是数值”。这个函数返回布尔值,true表示非数值,false表示是数值。
- Infinity:number类型的无限。
- Null:一般应用场景就是表示空对象,即对象不存在。从逻辑上来讲,null值表示一个空对象的指针。这也是为什么用typeof检测的时候,它会返回“object”的原因。
- Undefined:出现场景有两个,一是已声明未赋值的变量,二获取对象不存在的属性时。
04.JS的注释和CSS一样
JS的注释和CSS一样,有单行注释和多行注释。
//单行注释
/*
多行注释
*/
05.用typeof操作符判断检测给定变量的数据类型
用法如下面这样:
var num;
typeof num;//undefined
var message="some string";
alert(typeof message);//"string"
对一个值使用typeof操作符可能会返回下列某个字符串:
- “undefined”:表示这个值未定义;
- “boolean”:表示这个值是布尔值;
- “string”:表示这个值是字符串;
- “number”:表示这个值是数值;
- “object”:表示这个值是对象或null;
- “function”:表示这个值是函数;
06.JS的语法
JavaScript所提供的语句语法分为以下几大类:
(1)变量声明,赋值语句:var。
语法如下:
var 变量名称 [=初始值]
例:var computer = 32 //定义computer是一个变量,且有初值为32。
( 2)函数定义语句:function,return。
语法如下:
function 函数名称 (函数所带的参数){
函数执行部分
return 表达式 //return语句指明将返回的值。
}
例:function square ( x ) {
return x*x;
}
(3)条件和分支语句:if...else,switch。
if...else语句完成了程序流程块中分支功能:如果其中的条件成立,则程序执行紧接着条件的语句或语句块;否则程序执行else中的语句或语句块。
语法如下:
if (条件) {
执行语句1
}else{
执行语句2
}
例:
if (result == true) {
response = “你答对了!” ;
}else{
response = “你错了!”;
}
分支语句switch可以根据一个变量的不同取值采取不同的处理方法。
语法如下:
switch (表达式) {
case 条件1:
语句段1;
case 条件2:
语句段2;
case 条件3:
语句段3;
...
default:
语句段3;
}
例如:
var _param1=60;
switch(_param1){
case 60:
window.alert("及格!");
break;
case 80:
window.alert("良好!");
break;
case 90:
window.alert("优秀!");
break;
case 100:
window.alert("满分!");
break;
default:
window.alert("没有分数!");
break;
}
如果表达式取的值同程序中提供的任何一条语句都不匹配,将执行default中的语句。
(4)循环语句:for, for...in,while,break,continue。
1、for语句的语法如下:
for (初始化部分;条件部分;更新部分){
执行代码段部分...
}
例如:
var sum=0;
for(var i=1;i<51;i++){
sum +=i;
}
alert(sum);//1275
只要循环的条件成立,循环体就被反复的执行。
2、for...in语句与for语句有一点不同,它循环的范围是一个对象所有的属性或是一个数组的所有元素。
for...in语句的语法如下:
for (变量 in 对象或数组) {
语句...
}
例如:
//创建具有某些属性的对象
var myObject=new Object();
myObject.name="张三";
myObject.age="22";
myObject.phone="65658888"
//循环枚举对象的所有属性
for(prop in myObject){
//显示所有属性
window.alert("属性"+prop+"的值为"+myObject[prop]);
}
3.while语句所控制的循环不断的测试条件,如果条件始终成立,则一直循环,直到条件不再成立。
语法如下:
while (条件) {
执行语句...
}
例如:
var i=0;
while(i<10){
i+=2;
}
4.break语句结束当前的各种循环,并执行循环的下一条语句。continue语句结束当前的循环,并马上开始下一个循环。
(5)对象操作语句:with,new,this。
1、with语句
with语句的语法如下:
with (对象名称){
执行语句
}
with语句的例子是这样的
var qs=location.search.substring(1);
var hostName=location.hostname;
var url=location.href;
上面的几行代码都包含location对象,如果使用with语句,可以把上面的代码改写成:
with(location){
var qs=search.substring(1);
var hostName=hostname;
var url=href;
}
作用是这样的:如果你想使用某个对象的许多属性或方法时,只要在with语句的()中写出这个对象的名称,然后在下面的执行语句中直接写这个对象的属性名或方法名就可以了。
2、new语句是一种对象构造器,可以用new语句来定义一个新对象。
语法是这样的:
新对象名称= new 真正的对象名
譬如说,我们可以这样定义一个新的日期对象:
var curr= new Date()
然后,变量curr就具有了Date对象的属性。
3、this运算符总是指向当前的对象。
网友评论