1. JS编写位置

(1)在标签的属性中(属于结构与行为耦合,不推荐使用)

<button onclick=" alert('在这里'); ">点我看看</button>
<a href=" javascript: alert('在这里'); ">点我看看</a>

(2)在script标签中 (在<head>或<body>中)

<script>
    alert("我在这里");
</script>

 

 

 (3)外部js文件

// html文件中引入js文件 
<script type="text/javascript" src="./test.js"></script>

 


2. 格式

  • 注释:/* */
  • JS严格区分大小写
  • JS以分号结尾
  • JS会忽略多个空格和换行

 

3. cookie 和 session

  • cookie 数据存放在客户浏览器上,session数据放在服务器上
  • cookie不安全,保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie
  • session在一定时间内保存在服务器上。访问增多,会比较占用服务器的性能

 

4. 字面量和变量

  • 字面量:不可改变的值,如1,2,3。可以直接使用,但一般不直接用
  • 变量:可用来保存字面量
  • 声明变量用 var ,未赋值显示undefined。如 var a = 123;

 

5. 标识符

  • 可以由我们自主命名,例:变量名、函数名、属性名
  • 命名规则
    • 可以含有字母、数字、“_”  、“$”
    • 不能以数字开头
    • 不能是ES中的关键字或保留字
    • 一般采用驼峰命名法

 

6. 数据类型

(1)String:用单引号或者双引号均可,但不可以嵌套使用,如 var a = "today";

(2)Number:超过最大/最小值时返回 Infinity 或 NaN(Not a Number)。若 a = Infinity 或 NaN ,a均为Number类型。整数运算基本可以保证精确,浮点数可能不精确

(3)Boolean

(4)Null:var a = null; 定义空对象,typeof返回Object

(5)undefined:var a; 或 var a = undefined; 为未赋值返回undefined

(6)Object

PS:typeof 返回检查类型( console.log(typeof(a)) )

 

7. 强制转换

  • string转换
    • String(a);  //  Number  和Boolean 使用String() 相当于调用toString方法,而 null 和 undefined 是直接转换成字符串“null”和“undefined”
    • a.toString();  //  null 和 undefined 没有toString方法,会报错
  • number转换
    • Number(a);
      • 字符串 => 数字  ①"123" => 123  ②非数字(如 "123px")=> NaN  ③空串或空格串 => 0
      • Null => 数字 为 0
      • Undefined => 数字 为 NaN
    • parseInt();
      • 将字符串转为整数,"123.3px" =>123,"b12p" => NaN。parseInt( a, 8 ) 中第二位8表示八进制
    • parseFloat();
      • 将字符串转为浮点数,"123.3px" => 123.3
  • Boolean转换
    • 数字除了 0 和 NaN,其余均为true( 包括Infinity也为true )
    • 字符串除了空格其余均为true
    • null 和 undefined 均为false
    • 对象类型也为true
  • PS:parseInt 和 parseFloat 对非String类型使用会先转为String类型再进行转化,即 null => NaN

 

8. 其他进制

  • 十六进制:0x开头
  • 八进制:0开头
  • 二进制:0b开头(非所有浏览器都支持)

 

9. 算术运算符

  • +(加)、-(减)、*(乘)、/(除)、%(取余)
  • +:
    • 非数字转为数字,false+true = 0+1 = 1
    • 任何值和字符串相加,均转为字符串,再做拼串处理
    • 任意的数据类型 +“”,均转为String类型
  • 除了加法转字符串,其余运算符字符串均转Number
  • 可以通过一个值 -0,*1,%1,/1转换为Number类型,原理同Number(),使用更加方便

 

10. 一元运算符

  • +(正)、-(负)
  • 正号不会有影响、负号取反
  • 对于非Number值,会转成Number再算
  • 可以对其他数据类型用+转为Number

 

11. 自增、自减

  • ++a
  • a++
  • --a
  • a--
  • ++ 或 --  写在变量前面是先自增后运算,写在后面是先运算后自增
  • 例:var a = 20;    console.log( a++ );    console.log( a ); 第一个输出a的值为20,第二个为21
  • 例:var a = 20;    a = a++ + ++a + a;    a的值为64

 

12. 与(&&)或(||)非(!)

  • 运算时先转为布尔值,再运算,并返回原值
  • &&
    • true + true = true,返回后面的值,如 a = 5 && 6;  a=6
    • false + false = false,返回前面的值,如 a = NaN && 0;  a=NaN;
    • true + 其他,必然返回第二个值
    • false + 其他,必然返回第一个值
  • ||
    • 如果第一个值为true,必然返回第一个值
    • 如果第一个值为false,必然返回第二个值

 

13. 关系运算符

  • >    <    ==    >=    <=    !=    ===    !==
  • 若两边均为字符串,一个字符一个字符比较
  • PS:undefined == null  =>  true,因为 undefined 衍生自 null
  • 可以通过 isNaN() 来判断是否为NaN,NaN不和任何值相等,包括他本身

 

14. 语句块

  • 可以用 { } 来为语句分组,称为代码块。要么一起执行,要么一起不执行
  • 代码块只有分组作用,不会影响内外情况

 

posted on 2021-07-01 16:47  西柚柚柚子  阅读(67)  评论(0)    收藏  举报