开门见山——JS基础知识点(一)
JS的编写位置
最常见的,写在
<script type="text/javascript">
alert("!");
</script>
通过外部引入js文件(需要注意的是路径地址)。
<script src="xxx.js" type="text/javascript"></script>
注意:script标签一旦用于引入外部文件就不能再编写语句了。
js还可以编写在标签的属性当中,例如:
<button onclick="alert(!);">按钮</button>
<a href="javascript:;"></a>
JS中的注释
//单行注释
/*
多行注释
*/
JS的标识符
由我们自主命名的,如:变量名、函数名、属性名都属于标识符。
命名标识符需要遵循规则:
-
标识符可以含有字母、数字、___ 、$
-
标识符不能以数字开头
-
标识符不能是ES中的关键词或保留字
关键词
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 let const 保留字
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 -
标识符一般采用驼峰命名法
- 首字母小写,每个单词的开头字母大写,其余字母小写
- 例如:helloWorld
JS的数据类型
js有六种数据类型(五种基本数据类型):
- String 字符串
- Number 数值
- Boolean 布尔值
- Null 空值
- Undefined 未定义
- Object 对象
注意:(NaN是一个特殊的Number类型。Not A Number)
- String中的转义:
\" 表示"
\' 表示'
\n 表示换行
\t 制表符
-
Number的最大值 Number.MAX_VALUE
1.7976931348623157e+308
如果使用Number表示的数字超过了最大值,则返回一个 Infinity ,表示正无穷。
如果使用JS进行浮点运算,可能得到一个不精确的结果
var a = 0.1 + 0.2
console.log(a)
- Boolean 布尔值只有true和false。
- Null 只有一个值 null。表示一个为空的对象,所以 typeof检查时返回的是Object。
- Undefined 只有一个值 undefined。表示一个声明了,但没有赋值的变量。
强制数据类型装换
-
转换为String
方法一:调用被转换类型的toString()方法。null 和 undefined 这两个值没有toString方法。 如:a.toString()
方法二:调用String()函数。底层调用了toString方法,对于null和undefined会直接转换。 如:String(a)
-
转换为Number
方法一:调用Number()函数,如:Number(a)
- 如果有非数字内容,则转换为NaN。空串转换为0。true转换为1,false转换为0。null 转换为0。undefined转换为NaN。
方法二:parseInt() 把一个字符串转换为一个整数,parseFloat()把字符串转换为浮点数。可以将字符串中有效的数取出来,如123.1px 取 123.1。(Float第二个小数点后不取。)
- 非String会先转换为String,再转换成NaN。
-
进制
-
十六进制:0x
-
八进制:0
-
二进制:0b
-
-
转换为Boolean
数字除了0和NaN,其余为true。
字符串除了空串即为true。 null 和 undefined 为false。
JS的算数运算符
-
当对非Number类型的值进行运算时,会将这些值转换为Number然后再运算。
result = 2 + null; //2 result = 2 + NaN; //NaN
任何值和NaN做运算全为NaN。
-
字符串相加会拼串
result = "123" + "456"; //"123456"
字符串双引号只能在一行,如果换行需要拼串
var str = "123"+ "123"+ "123"+ "123";
任何的值和字符串做加法运算都会拼串!!
a = a + "";
利用这一点,+ “” 就可以完成一个字符串的转换。
类似的还有 字符串加个+号直接转number(*1、/1或者- 0),加俩!转布尔值。
代码演示:
result = "123" + 1; // "1231" a = '123'; ++a; //124 b = '123'; !!b; ///true。这里意思是!b=false,利用双重否定!false=true,实现了字符串转布尔值。
顺带补充知识点,参照MDN文档:
n1 = !!true // !!truthy returns true n2 = !!{} // !!truthy returns true: any object is truthy... n3 = !!(new Boolean(false)) // ...even Boolean objects with a false .valueOf()! n4 = !!false // !!falsy returns false n5 = !!"" // !!falsy returns false n6 = !!Boolean(false) // !!falsy returns false