将内容写到 HTML 文档中 - - - document.write() 
 
    <script>
    	// 括号里的内容要有引号
        document.write("<h1>这是一个标题</h1>");
        document.write('<div class="box">hello world</div>');
    </script>
    <style>
        .box{
            width: 100px;height: 100px;
            background: red;
        }
    </style>

 如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖
在文本字符串中使用反斜杠\对代码行进行换行
<script>
document.write("你好 \
世界!");
</script>
弹出警告框 window.alert() - - - 测试常用
 
<button type="button" onclick="alert('欢迎!')">点我!</button>
    <script>
        window.alert(5 + 6);
    </script>
改变HTML内容 - - - innerHTML
 
    <p id="demo">
        JavaScript 能改变 HTML 元素的内容。
    </p>
    <script>
        function myFunction() {
            // x = document.getElementById("demo");  // 找到元素
            // x.innerHTML = "Hello JavaScript!";    // 改变内容
            document.getElementById('demo').innerHTML = 'Hello JavaScript!'
        }
    </script>
    <button type="button" onclick="myFunction()">点击这里</button>
console.log 写到控制台
 
JavaScript 语句标识符 (关键字)
| 语句 | 描述 | 
|---|---|
| break | 用于跳出循环 | 
| catch | 语句块,在 try 语句块执行出错时执行 catch 语句块 | 
| continue | 跳过循环中的一个迭代 | 
| do … while | 执行一个语句块,在条件语句为 true 时继续执行该语句块 | 
| for | 在条件语句为 true 时,可以将代码块执行指定的次数 | 
| for … in | 用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作) | 
| function | 定义一个函数 | 
| if … else | 用于基于不同的条件来执行不同的动作 | 
| return | 退出函数 | 
| switch | 用于基于不同的条件来执行不同的动作 | 
| throw | 抛出(生成)错误 | 
| try | 实现错误处理,与 catch 一同使用 | 
| var | 声明一个变量 | 
| while | 当条件语句为 true 时,执行语句块 | 
var 声明变量
    <script>
        // 一行声明多个变量
        var name = 'tom',age = 12,gender = '';
        // 可横跨多行
        var name,
            age,
            gender;
        // x,y 为 undefined(未使用值来声明的变量), z 为 1
        var x,y,z=1;
    </script>
JavaScript 数据类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。
引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。
typeof 查看变量的数据类型
<script>
document.getElementById("demo").innerHTML = 
	typeof false + "<br>" +
	typeof {name:'john', age:34};
</script>
创建数组
    <script>
        var cars=new Array();
        cars[0]="Saab";
        cars[1]="Volvo";
        cars[2]="BMW";
        // var cars=new Array("Saab","Volvo","BMW");
        document.write(cars)
        document.write('<br><br>')
		
		// 注意使用分号隔开,不是逗号
        for(i=0;i<cars.length;i++){
            document.write(cars[i] + '<br>')
        }
    </script>

创建对象
    <script>
        var person =
        {
            firstname: "John",
            lastname: "Doe",
            id: 5566
        };
        // 得到值的两种方法  访问对象属性
        document.write(person.lastname + "<br>");		// Doe
        document.write(person["lastname"] + "<br>");	// Doe
    </script>
对象方法
    <p id="demo"></p>
    <script>
        var person = {
            firstName: "John",
            lastName: "Doe",
            id: 5566,
            fullName: function () {
                return this.firstName + " " + this.lastName;
            }
        };
        // 访问 person 对象的 fullName() 方法
        document.getElementById("demo").innerHTML = person.fullName();	// John Doe
        // 访问 person 对象的 fullName 属性,它将作为一个定义函数的字符串返回
        document.getElementById("demo").innerHTML = person.fullName;	// function () { return this.firstName + " " + this.lastName; }
    </script>
Undefined 和 Null
Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。
函数
    <script>
        function myFun(){
            alert('Hello World!')
        }
    </script>
    <button onclick="myFun">点我</button>
传参
    <button onclick="myFunction('Harry Potter','Wizard')">点击这里</button>	
    <button onclick="myFunction('Bob','Builder')">点击这里</button>
    <script>
        function myFunction(name, job) {
            alert("Welcome " + name + ", the " + job);
        }
    </script>
返回值
    <p id="demo"></p>
    <script>
        function myFunction(a, b) {
            return a * b;
        }
        document.getElementById("demo").innerHTML = myFunction(4, 3);
    </script>
12
JavaScript 变量
    <script>
        var var1 = 1; // 不可配置全局属性
        var2 = 2; // 没有使用 var 声明,可配置全局属性
        console.log(this.var1); // 1
        console.log(window.var1); // 1
        console.log(window.var2); // 2
        delete var1; // false 无法删除
        console.log(var1); //1
        delete var2;
        console.log(delete var2); // true
        console.log(var2); // 已经删除 报错变量未定义    
    </script>
作用域
作用域为可访问变量,对象,函数的集合
局部作用域
    <p id="demo"></p>
    <script>
        myFunction();
        document.getElementById("demo").innerHTML = "carName 的类型是:" + typeof carName;
        function myFunction() {
            // 局部变量在声明的函数外不可以访问
            var carName = "Volvo";
        }
    </script>
carName 的类型是:undefined
全局作用域
    <p id="demo"></p>
    <script>
        var carName = "Volvo";
        myFunction();
        function myFunction() {
            document.getElementById("demo").innerHTML =
                "我可以显示 " + carName;
        }
    </script>
我可以显示 Volvo
    <p id="demo"></p>
    <script>
        myFunction();
        document.getElementById("demo").innerHTML =
            "我可以显示 " + carName;
        function myFunction() {
            // 如果你的变量没有声明,它将自动成为全局变量
            carName = "Volvo";
        }
    </script>
我可以显示 Volvo
HTML 中的全局变量
在 HTML 中, 全局变量是 window 对象,所以window 对象可以调用函数内的局部变量。
 注意:所有数据变量都属于 window 对象。
    <p id="demo"></p>
    <script>
        myFunction();
        document.getElementById("demo").innerHTML =
            "我可以显示 " + window.carName;
        function myFunction() {
            carName = "Volvo";
        }
    </script>
我可以显示 Volvo


















