一. 三种存在位置

  1.行间式:存在于行间事件中

<body id=\"body\"  =\"body.style.backgroundColor=\'#0ff\'\">
    
</body>

  2.内联式:存在于页面 标签中

<body id=\"body\">
    <  type=\"text/ \">
		body.style.backgroundColor=\'#0ff\'
	</ >
</body>

 3.外联式:存在于外部JS文件,通过 标签src属性链接

index.js文件
body.style.backgroundColor=\'#0ff\'

index.html文件
<  src=\"./js/index.js\"></ >

二.解释性语言特性决定JS代码位置

   1.出现在head标签底部:依赖型JS库

   2.出现在body标签底部:功能型JS脚本

三.JS语法规范

   1.注释

    // 单行注释
   /* 
    多行注释
   */

   2.以分号作为语句结尾(允许省略)

四.变量的定义

   1.ES5定义变量

var num = 10;  // 无块级作用域变量
num = 10;  // 全局变量

    2.ES6定义变量

let num = 10;  // 局部变量
const NUM = 10;  // 常量

  3.四种 定义变量的方式

四种定义变量的方式
语法: 关键词 变量名 = 变量值

num = 10; // 省略关键词, 定义的为全局变量, 在任何位置定义, 在任何位置都可以访问, 但不建议使用
var num = 10; // var关键词, 无块级作用域, 定义在块级作用域中的变量, 外界也可以访问
let num = 20; // let关键词, 有块级作用域, 定义在块级作用域中的变量, 外界无法访问
const NUM = 30; // const关键词,有块级作用域, 定义在块级作用域中的变量, 外界无法访问, 且变量的值不能再被二次修改, 所以为常量

/* 产生块级作用域的方式
{
    直接书写
}
if语句可以产生
while语句可以产生
for语句也可以产生
*/

// 函数可以产生局部作用域, 除了定义在局部作用域中的全局变量(没有关键字的变量声明), 外界可以访问, 其他定义方式, 外界都不可以访问

 

 五.变量(标识符)的命名规范

1.由字母,数字,_,$组成,不能以数字开头(可以包含中文字符)
2.区分大小写
3.不能出现关键字及保留字

   注意:

< >
    //块级作用域定义变量
    // var无块级作用域
  {
      const NUM=\"hello\";
      var num=10;

  }
  //let有块级作用域
  {
      let b=888;
      console.log(b)
  }
  //const有块级作用域
  {
      const NUM=\"hello\";

  }
  console.log(num);

     //let定义的变量具有块级作用域,在块级作用域之外无法访问
    //var定义的变量无块级作用域,在块级作用域之外可以访问
    // const定义的常量具有块级作用域,在块级作用域之外无法访问
   // 在ES6语法下,定义的变量(let)和常量(const)都具有块级作用域
    // 在ES5语法下,没有定义常量的概念,且所有的定义变量都不具有块级作用域

</ >

    

< >
    //局部作用域
    //ES5语法下,只有方法(函数)才能产生局部作用域
    //ES6语法下,块级作用域都可以为局部作用域
    //块级作用域的范围大于等于局部作用域的范围
    function func() {
         a =10;  //全局作用域
        let b=20; //局部作用域
        const c=20;  //局部作用域

        //定义全局变量
        //注:定义全局变量与重新赋值语法相同,容易混淆,不建议使用
        ddd=50;

    }


    {

        ddd=60;
    }
    
    func()  //执行函数

    console.log(a);
    //console.log(c);
    console.log(ddd);  //50
    
</ >

 

收藏 打印