JavaScript学习笔记

JavaScript 是脚本语言

JavaScript 是一种轻量级的编程语言。
JavaScript 是可插入 HTML 页面的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
JavaScript 很容易学习。

JavaScript:直接写入 HTML 输出流

document.write("<h1>这是一个标题</h1>");

效果如图
在这里插入图片描述
只能在 HTML 输出中使用 document.write。如果您在文档加载后使用该方法,会覆盖整个文档。
如:原始界面是这样
在这里插入图片描述
点击过后就只显示标题了,其他内容被覆盖了
在这里插入图片描述

JavaScript:对事件的反应

<button type="button" onclick="alert('欢迎!')">test</button>

在这里插入图片描述

JavaScript:改变 HTML 内容

下面点击过后将会使按钮从a变成b

<button id="a" onclick="document.getElementById('a').innerHTML='b'">a</button>

在这里插入图片描述
在这里插入图片描述

JavaScript:改变 HTML 属性

document.getElementById(id).属性.match(匹配id)
<article>
    <input type="text" name="unknown" id="in" placeholder="文本">
    <input type="button" onclick="change(this)" value="变换" />
</article>
<script>
    function change(current) {
        var temp = document.getElementById("in")
        if (temp.type.match("text")) {
            temp.type = "password"
            temp.placeholder = "密码"
            current.value = "莫测"
        } else {
            temp.type = "text"
            temp.placeholder = "文本"
            current.value = "变换"
        }
    }

</script>

效果如下
在这里插入图片描述
在这里插入图片描述

JavaScript:验证输入

isNaN(x) 是否是数字

JavaScript 字面量

在编程语言中,一般固定值称为字面量,如 3.14,在Java中叫做常量。

  • 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。

  • 字符串(String)字面量 可以使用单引号或双引号:

  • 表达式字面量 用于计算

  • 数组(Array)字面量 定义一个数组:[40, 100, 1, 5, 25, 10]

  • 对象(Object)字面量 定义一个对象:{firstName:“John”, lastName:“Doe”, age:50, eyeColor:“blue”}

  • 函数(Function)字面量 定义一个函数:function myFunction(a, b) { return a * b;}

JavaScript 变量

JavaScript 使用关键字 var 来定义变量, 使用等号来为变量赋值,变量可以通过变量名访问。在指令式语言中,变量通常是可变的。字面量是一个恒定的值。

语句标识符

break		用于跳出循环。
catch		语句块,在 try 语句块执行出错时执行 catch 语句块。
continue	跳过循环中的一个迭代。
do ... while	执行一个语句块,在条件语句为 true 时继续执行该语句块。
for			在条件语句为 true 时,可以将代码块执行指定的次数。
for ... in	用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
function	定义一个函数
if ... else	用于基于不同的条件来执行不同的动作。
return		退出函数
switch		用于基于不同的条件来执行不同的动作。
throw		抛出(生成)错误 。
try			实现错误处理,与 catch 一同使用。
var			声明一个变量。
while		当条件语句为 true 时,执行语句块。

对代码行进行折行

document.write("你好 \
世界!");

一条语句,多个变量

var lastname="Doe", age=30, job="carpenter";
或
var lastname="Doe",
age=30,
job="carpenter";

重新声明 JavaScript 变量

如果重新声明 JavaScript 变量,该变量的值不会丢失:
在以下两条语句执行后,变量 carname 的值依然是 “Volvo”:

var carname="Volvo";
var carname;
alert(carname)

在这里插入图片描述

使用 let 和 const (ES6)

ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const。
let 声明的变量只在 let 命令所在的代码块内有效。
const 声明一个只读的常量,一旦声明,常量的值就不能改变。
在 ES6 之前,JavaScript 只有两种作用域: 全局变量 与 函数内的局部变量。
在 ES6 之前,是没有块级作用域的概念的。

ES6 可以使用 let 关键字来实现块级作用域。

let 声明的变量只在 let 命令所在的代码块 {} 内有效,在 {} 之外不能访问。
{ 
    var x = 2; 
}
// 这里可以使用 x 变量
{ 
    let x = 2;
}
// 这里不能使用 x 变量

在 HTML 中, 全局作用域是针对 window 对象。
使用 var 关键字声明的全局作用域变量属于 window 对象:

var carName = "Volvo";
// 可以使用 window.carName 访问变量
let carName = "Volvo";
// 不能使用 window.carName 访问变量

注意:在相同的作用域或块级作用域中,let不能够重置变量,而var可以重置变量;var可以先使用再去声明变量,而let必须在声明过后再使用。
如下,代码中的变量将失效

carName = "Volvo";
document.getElementById("demo").innerHTML = carName;
let carName;

const

const 定义的常量不可以被修改,否则会报错,但是可以对常量对象的属性进行修改,如下:

// 创建常量对象
const car = {type:"Fiat", model:"500", color:"white"};
// 修改属性:
car.color = "red";
// 添加属性
car.owner = "Johnson";
// 不能够对该对象重新赋值
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"};    // 错误

修改常量数组:

// 创建常量数组
const cars = ["Saab", "Volvo", "BMW"];
// 修改元素
cars[0] = "Toyota";
// 添加元素
cars.push("Audi");
// 同理不能重新赋值
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];    // 错误

const 关键字在不同作用域,或不同块级作用域中是可以重新声明赋值的:如下

const x = 2;       // 合法
{
    const x = 3;   // 合法
}
{
    const x = 4;   // 合法
}

JavaScript 拥有动态类型

JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:

var x;               // x 为 undefined
var x = 5;           // 现在 x 为数字
var x = "John";      // 现在 x 为字符串

声明变量类型

当声明新变量时,可以使用关键词 “new” 来声明其类型:

var carname=new String;
var x=      new Number;
var y=      new Boolean;
var cars=   new Array;
var person= new Object;

对象

对于对象中的方法,声明后必须使用方法名()调用

var person = {
    firstName: "John",
    lastName : "Doe",
    id : 5566,
    fullName : function() 
    {
       return this.firstName + " " + this.lastName;
    }
};
document.getElementById("demo1").innerHTML = "不加括号输出函数表达式:"  + person.fullName;
document.getElementById("demo2").innerHTML = "加括号输出函数执行结果:"  +  person.fullNa

在这里插入图片描述

向未声明的 JavaScript 变量分配值

将声明 window 的一个属性 carname。
非严格模式下给未声明变量赋值创建的全局变量,是全局对象的可配置属性,可以删除。

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); // 已经删除 报错变量未定义

持续更新中。。。。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值