出现在标签中的全局事件属性中
this代表该标签, 可以访问全局属性, 再访问具体操作对象(eg: this.style.color = "red")
2.内联式:
出现在script脚本标签中
可以通过标签的id唯一标识,在js代码块中操作页面标签
js采用的是小驼峰命名规范, 属于解释性语言(由上至下依次解释执行)
3.外联式:
通过script标签的src属性链接外部js文件, 链接后, script标签本身内部的js代码块将会被屏蔽
在任何位置都可以使用this对象,当this对象不指向任意一个标签时,代表的是window对象
4.js具体出现的位置
head标签的底部: 依赖性js库
body标签的底部(body与html结束标签的之间): 功能性js脚本
四种定义变量的方式
语法: 关键词 变量名 = 变量值
num=10; 省略关键词,定义的为全局变量,在任何位置定义,在任何位置都可以访问,但不建议使用
var num=10; var关键词,无块级作用域,定义在块级作用域中的变量,外界无法访问
let num=10; let关键词,有块级作用域,定义在块级作用域中的变量,外界无法访问
const num=10; const关键词,有块级作用域,定义在块级作用域中的变量,外界无法访问,且变量的值不能再被二次修改,所以为常量。
产生块级作用域的方式
{
直接书写
}
if语句、while语句、for语句可以产生块级作用域。
函数可以产生就作用域,除了定义在局部作用域中的全局变量(没有关键字的变量),外界可以访问,其他定义方式,外界都不可以访问
变量命名规范
可以由哪些组成: 字母, 数字, _, $, 中文(一般不考虑)
可以以什么开头: 字母, _, $, 中文(一般不考虑)
不能出现什么: 关键字, 保留字(将来要用的,不给用户使用)
提倡什么书写规范: 小驼峰, 支持_连接语法
// 值类型
var a = 10; // Number 10
var a = 'abc'; // String abc
var a = true; // Boolean true
var a = undefined // undefined undefined
// 引用类型
var a = function(){} // function f(){}
var a = {} // Object {}
var a = null // Null null
// 其他Object具体体现
Array | Date | RegExp
1.通过类型声明转换
Number() | String() | Boolean()
// 1. number 与 boolean类型
// boolean类型的true就是数字1, false就是数字0
console.log((true + true) * 10 * false)
// number 中 0, NaN 可以直接当false来使用, 其他的都可以当true来使用
// 2. string,boolean 转换为 number
var a = '10'; // => 10
a = '3.14'; // => 3.14
a = '3.14.15'; // => NaN
var b = true;
var n1 = Number(a);
console.log(n1)
var n2 = Number(b);
console.log(n2)
a = '3.14.15'; // 3.14
a = 'a3.14'; // NaN
console.log(parseFloat(a));
a = '3.94.15'; // 3
console.log(parseInt(a));
// 体现弱语言类型
a = '10';
var res = +a; // number 10
console.log(typeof(res), res)
// 3.number, string 转换为 boolean
// 在分支或循环判断中, 系统会将数字与字符串类型自动转换为布尔类型
// 不在判断中, 如何转换
console.log(Boolean(""));
console.log(Boolean(0));
console.log(Boolean(NaN));
console.log(Boolean(null));
console.log(Boolean("1"));
console.log(Boolean(-100));
// 4.number, boolean 转换为 string
console.log(String(true));
console.log(String(1));
var a = 123;
console.log(a.toString());
console.log(123..toString());
console.log(3.14.toString());
var c = 123 + "";
console.log(typeof c, c);
// 用例
var z1 = 2 + +"5"; // 7
z1 = 2 + "5"; // "25"
// z1 = 2 ++"5"; // 语法错误 ++连在一起是 ++语法(了解)
var z2 = "5" - 2; // 3
console.log(z1, z2);
// 补充
// NaN与NaN不相等