JavaScript学习笔记
什么是JavaScript?
- JavaScript 是⼀种客户端脚本语言(⼀种轻量级的编程语言)。
- JavaScript 通常被直接嵌入 HTML页面,由浏览器解释执行。
- JavaScript 是⼀种解释性语言,代码执行不需要预编译。
- 特点:弱类型和基于对象。 (具有封装、继承、多态的特征)。
- 三个核心: ECMAScript基本语法、 DOM、 BOM。
JavaScript使用方法。
- 内部JavaScript:使用 < script > < /script >标签。
<script type="text/javascript">
//javaScript语句
</script>
- 外部JavaScript:外部导入js会使代码更加有序,更易于复用, HTML也会更加易读。
<script type="text/javascript" src="my.js"></script>
- 内联JavaScript处理器:将js代码写入html代码中,如在html标签的事件中或超级链接里。
<button onclick="javaScript语句"></button>
<a href="javascript:alert('aa');alert('bb')">点击</a>
JavaScript基础语法。
一、输出方式
- window.alert() :弹出警告框。
- document.write() 方法将内容写到 HTML 文档中。
- innerHTML 写入到 HTML 元素。
- console.log() 写⼊到浏览器的控制台。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JavaScript的输出方式</title>
</head>
<body>
<h3>测试内容:</h3>
<div id="did">aaaaa</div>
</body>
<script>
//1、弹出⼀个信息提示框
window.alert("Hello JavaScript!");
//2、输出到浏览器⻚⾯中
document.write("这个是⻚⾯中的输出");
//3、通过写⼊HTML标签中,完成⻚⾯中的输出
document.getElementById('did').innerHTML="div层中的输出";
//4、在控制台输出
console.log("在控制台输出");
</script>
</html>
二、变量
- 使用var声明变量:
var name; //声明变量
name = "zhangsan"; //赋值
var age,sex; //声明多个变量,使用逗号隔开。
var uname = 'wangwu', uage = 25; //声明多个变量并赋值。
- 变量的命名规则和规范:
- 规则:
- 由字母、数字、下划线、 $符号组成,不能以数字开头。
- 不能是关键字和保留字,例如: for、 if、 while。
- 区分大小写。
- 规范:
- 变量名必须有意义。
- 遵守驼峰命名法。首字母小写,其他单词的首字母大写。例如: userName、userPassword。
- 语句与注释:
- 语句:由表达式加分号构成 。
- 注释:单行// 多行/* */
- 数据类型:
- 值类型:字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
- 引用数据类型:对象(Object)、数组(Array)、函数(Function)。
其中Undefined 这个值表示变量不含有值,Symbol 是 ES6 引入了⼀种新的原始数据类型,表示独一无二的值。null 和 undefined 的区别是值相等,但类型不等:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
三、2、8、16进制输出与转换。
//整数的进制的输出
console.log(10); //输出⼗进制数的值
console.log(0b10); //输出⼆进制数10的值
console.log(0o10); //输出⼋进制数10的值
console.log(0x10); //输出⼗六进制数10的值
//⼗进制转换其他进制
var x = 110;
x.toString(2)//转为2进制
x.toString(8)//转为8进制
x.toString(16)//转为16进制
//其他进制转⼗进制
var a = "1010"//这是⼀个⼆进制的字符串表示
parseInt(a, 2)//把这个字符串当做⼆进制, 转为⼗进制
var b = "70"//这是⼀个⼋进制的字符串表示
parseInt(b, 8)//把这个字符串当做⼋进制, 转为⼗进制
var c = "cc"//这是⼀个⼗六进制的字符串表示
parseInt(c, 16)//把这个字符串当做⼗六进制, 转为⼗进制
四、 常见的类型转换:
五、javascript中的特别运算符:
- delete:用于删除对象中属性。
- 如果删除成功,返回true;反之,false;
- 如果删除不存在的变量, delete不会起任何作用,但是返回true;
- 只能删除对象自己的属性,不能删除类的属性;
- 用var声明的变量不能从全局或者函数作用域删除。
- ===:是否等值等型(值相等并且类型相等为true)。
- !==:不等值或不等型(值不相等或类型不相等为true)。
- typeof:返回变量的类型。
- instanceof:如果对象是对象类型的实例,返回true。
六、JavaScript函数:
//函数的定义方式:
//1.标准式
function demo1(){
console.log("Hello Demo1");
}
demo1();
//2.使用Function()构造函数定义
var demo2 = new Function('console.log("Hello Demo2");');
demo2();
//3.使用表达式方式定义(匿名)
var demo3 = function(){
console.log("Hello Demo3");
}
demo3();
//4. 函数自调用定义
(function(){
console.log("Hello Demo4");
})();
七、arguments 对象
- 在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。
- arguments是⼀个对象,是⼀个伪数组, arguments[索引]指向实参的值。arguments.length代表实参的个数。
//arguments 对象
function fun(){
console.log(arguments);
//遍历输出所有参数值
for(var i in arguments){
console.log(arguments[i]);
}
}
fun(10,20,30,40,50);
八、系统中常用的内置函数:
parseInt():强转整数,
parseFloat():强转浮点数。
isNaN():is not a number 检测参数是否不是⼀个数字。
escape() //字串编码
unescape() //字串反编码
eval() //将参数字符串作为脚本代码来执行。
var url = "http://www.***.com/a.html?name=张三&age=20";
console.log(url);
url2 = escape(url);//编码
console.log(url2);
console.log(unescape(url2));//反编码
var str = "var uname='zhangsan',age=20;";
eval(str); //将参数str字串当成js脚本程序执行