第3章:基本概念(一)
3.1 语法
3.1.1 区分大小写
js中的一切都是区分大小写的,包括变量、函数、操作符。
3.1.2 标识符
概念:标识符就是变量、函数、属性的名字。
命名:第一个字符必须是字母、下划线(_)或者美元符号($);
其他字符可以是字母、下划线、美元符号、数字。
推荐用驼峰命名。
命名不能用关键字、保留字、true、false、null。
3.1.3 注释
单行://
多行:
/*
* 多行注释内容
*/
3.1.4 严格模式
在函数上方加: "use strict";
function doSomething() { "use strict" //函数体 }
3.1.5 语句
用分号(;)结尾;代码块用 {}
3.2 关键字和保留字
关键字:ECMA规定具有一定用途的关键字,如:break、function、if....
保留字:以后可能用做关键字的
3.3 变量
用var定义变量;可以定义任何数据类型。如:var msg = "hello";
如果去掉var,msg = "hello"; 则这个是全局变量。不推荐这么定义全局变量。
3.4 数据类型
ECMAScript主要有6种数据类型:Undefinded、Null、Number、Boolean、String、Object;
3.4.1 typeof
使用typeof可以检测给定的变量是哪种数据类型。
3.4.2 Undefined类型
声明了变量,但是没有定义或者定义为undefinded;如:
var msg; alert(msg == undefined); //true var msg2 = undefined; alert(msg2 == undefined); //true var msg3; alert(msg3); //undefined alert(age); //error alert(typeof msg3); //undefined alert(typeof age); //undefined
alert(age); 什么代码中,没有声明age的变量,所以会报错。但是typeof,都会返回undefined.
3.4.3 Null类型
null是一个空对象;
var car = null; //alert(typeof car); //object if (car != null) { alert("not null"); } else { alert("null"); }
3.4.4 Boolean 类型
有两个值:true和false;
Boolean()的方法可以把一个值转换成布尔值。
var msg = "hello"; alert(Boolean(msg)); //true var msg = ""; alert(Boolean(msg)); //false //存在的自动Boolean自动 转换 if (msg) { alert("this is true"); } else { alert("this is false"); }
3.4.5 Number类型
(1)浮点数值,值得一提的是,看代码
var a = 0.1; var b = 0.2 alert(a + b); //0.30000000000000004 - 17位
(2)数值范围
.....
(3)NaN
/* * NaN 非数值 (Not a Number) * 任何数涉及和NaN操作都会返回NaN * 任何数 / 0 都会返回NaN * NaN不等于任何值,包括自己。 如:NaN != NaN * */ var num1 = 5 / 0; //alert(num1); //false 高版本浏览器会返回 inf..... var num2 = 5 + NaN; //alert(num2); //NaN alert(NaN == NaN); //false
isNaN()
针对NaN的两个特点,定义isNaN()函数。只接受一个参数,可以是任何类型。如果不是数字,则返回true。
console.log(isNaN(NaN)); //true console.log(isNaN(true)); //false console.log(isNaN(6)); //false; console.log(isNaN("5")); //false; console.log(isNaN("dfd")); //false var num = 898; if (! isNaN(num)) { alert("这是个数字"); } else { alert("不是数字"); }
(4)数值转换
有3个函数可以实现数值转换:Number()、parseInt()、parseFloat(),Number()问题比较多,比较常用的是后两个。
Number():
console.log(Number("abc")); //NaN; console.log(Number(true)); //1 console.log(Number(false)); //0 console.log(Number("0112")); //112 console.log(Number("20px")); //NaN console.log(Number("")); //0 console.log(Number(null)); //0 console.log(Number(1.2222)); //1.2222
parseInt():
console.log(parseInt("abc")); //NaN; console.log(parseInt(" 200px")); //200; console.log(parseInt(NaN)); //NaN;
parseFloat():
console.log(parseFloat("abc")); //NaN; console.log(parseFloat(" 200px")); //200; console.log(parseFloat(NaN)); //NaN; console.log(parseFloat("2222.2")); //2222.2; console.log(parseFloat("12.5.6")); //12.5; console.log(parseFloat("5.0")); //5; console.log(parseFloat("3.0.5")); //3;
3.4.6 String类型
(1)字符串字面量,也叫转义序列
\n 换行
\t 制表
\b 空格
\r 回车
\\ 斜杠
\' 单引号
\" 双引号
(2) 字符串特点:一点创建,就不能变
(3) 转化为字符串
toString(),几乎每个值都有这个方法。null和undefined除外。
var num = 10; console.log(num.toString()); //"10" var found = true; console.log(found.toString()); //"true"
String()
//如果有toString()的方法,则调用。。 var value1 = 10; var value2 = null; var value3; console.log(String(value1)); //"10" console.log(String(value2)); //"null" console.log(String(value3)); //"undefined"
+""
//要把某个值转换成 字符串 , 也可以 var num = 8 + ""; console.log(num); //"8"
3.4.7 Object类型
对象就是集合,包含数据和功能。可以通过new操作符后面跟对象类型名称来创建。并可以添加属性和方法。
var o = new Object(); var o = new Object; //有效但不推荐。 var o = {};
对象都有下面的属性和方法:
ConStrictpr:保存当前对象的函数。
hasOwnProperty(propertyName)
.....
PS:这几个名字又臭又长,记不住,--! 用的时候查一下。。。
浙公网安备 33010602011771号