JavaScript

介绍

虽然是java作为前缀,但java和javascript的关系,就像老婆和老婆饼之间的关系,没有一毛钱关系!

网景公司在Netscape2.0首先推出了JavaScript

JavaScript 的正式名称是“ECMAScript”,此标准由 ECMA 组织发展和维护,简称“js”

JavaScript 是一种网页编程技术,用来向 HTML 页面添加交互行为

JavaScript 是一种基于对象和事件驱动的解释性脚本语言,直接嵌入 HTML 页面,由浏览器解释执行代码,不进行预编译

特点

解释执行:事先不编译,逐行执行

基于对象:内置大量现成对象

组成

ECMAScript:定义核心语法,关键字,运算符,数据类型等系列标准

DOM:文档对象模型,将一个html页面的所有节点看成是一个一个的对象。更有层次感的管理每 一个节点。

BOM:浏览器对象模型,是对浏览器窗口进行访问和操作。使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。

HTML与javaScript结合方式

行内脚本
<button onclick="alert('弹框测试')">点我一下</button>
内部脚本
<body>
    <script>
    	alert("弹框");
    </script>
</body>
外部脚本

在项目根目录下创建一个目录js,在js目录中创建一个文件,后缀名是.js

在html页面中,使用

<script src="js/xx.js"></script>

以上使用脚本的三种方式的优先级,谁在上,谁先执行。因为是解释性语言。

JavaScript的使用

变量

因为js是弱类型语言,所以,在定义变量的时候,所有的数据类型都是var

自动类型转换

数字 + 字符串:数字转换为字符串 10+’a’ -> 10a

数字 + 布尔值:true转换为1,false转换为0 true+5->6

字符串 + 布尔值:布尔值转换为字符串 true+’a’->truea

布尔值 + 布尔值:布尔值转换为数值1或0 true+true->2

null 与 undefined

null在程序中代表“无值”或者“无对象”,可以通过给一个变量赋值null来清除变量的内容

undefined声明了变量但从未赋值或者对象属性不存在

算术运算

加(+)、 减(-)、 乘( * ) 、除( / ) 、余数( % )

递增( ++ ) 、递减( – )

关系运算

严格相等:=== 类型相同、数值相同

非严格相等:== 数值相同

逻辑运算

逻辑非(!)、逻辑与(&&)、逻辑或(||)

常用字符串API

length:获取字符串的长度(字符串中字符的个数) 属性,没有小括号

var str = "hello";
console.log( str.length );

toUpperCase/toLowerCase:转大小写

charAt(下标) :返回某个下标的字符

indexof(字符):查找字符串中字符出现的首次下标

lastIndexof(字符):查找字符串中字符最后一次出现的下标

substring(开始,结束):截取字符串中一部分(结束是不包含的)

var str1 = "abcdefgh";
var str2 = str1.substring(2,4);
console.log(str2); //cd,从2开始(包含),4结束(不包含)

replace(旧的,新的):将字符串中的旧字符替换成新字符

split(分割的节点):一个字符串切割成N个小字符串,所以返回的是数组类型

var str1 = "一,二,三,四,五";
var arr = str1.split(","); // 将str1 以逗号进行分割,分割成N份,所以返回的结果一定
是数组结构
console.log( "共分割成:"+arr.length+"份" );
console.log( "第三份是:" + arr[2] ); // 三
数组

数组

Math数学对象

Math数学对象

Number对象

Number对象

正则表达式

正则表达式 | 菜鸟教程

在这里插入图片描述

日期对象

日期对象 | 菜鸟教程

函数

使用关键字 function 定义函数,函数声明后不会立即执行,会在我们需要的时候调用

function qiuhe(a, b) {
    var he = a + b;
    console.log("两数之和:" + he);
}
qiuhe(3,4);

注意:

  • 形参:一定不要带数据类型
  • 分号是用来分隔可执行JavaScript语句,由于函数声明不是一个可执行语句,所以不以分号结束
构造函数

函数同样可以通过内置的 JavaScript 函数构造器(Function())定义

var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);
console.log(x);

注: 上述函数以分号结尾,因为它是一个执行语句

匿名函数

没有名称的函数,应该用一个变量来接收

var fn = function(a, b) {// 没有名字的函数,应该用一个变量来接收
	return a * 10 + b;
};
console.log( fn(3, 4) );
全局函数

全局函数 | 菜鸟教程

闭包

闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。

闭包 | 菜鸟教程

弹框输出
  • 普通弹框 alert(“hello,拉勾”);
  • 控制台日志输出 console.log(“谷歌浏览器按F12进入控制台”);
  • 页面输出 document.write("< h2>我爱你中国< /h2>"); 将元素输出到< body>中
  • 确认框 confirm(“确定删除吗?”);
  • 输入框 prompt(“请输入姓名:”);

DOM 操作

在一个html页面中,会使用很多标签来规划制作页面。 每个标签都有它存在的意义,如果我们想要动态的修改某个标签的值。那我们就需要在页面中查找到这个标签元素 如何查找到这个元素是个难题。

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

文档对象模型,就是将页面中所有的标签元素都看成是一个对象(一片叶子),主树干定义为根节点(根元素),所有的标签都是从根元素延伸出去的,摸清结构,找到某个标签就不再困难了。

HTML DOM 模型被构造为对象

DOM访问

DOM | 菜鸟教程

getElementById:通过id属性获得元素节点对象

getElementsByName:通过name属性获得元素节点对象集

getElementsByTagName:通过标签名称获得元素节点对象集

DOM修改

改变一个< h2> 元素的 HTML 内容 :

<body>
    <button onclick="test()">点我试试</button>
    <script>
        function test(){
        	document.getElementById("hello").innerHTML = "走哇,喝点去~!";
        }
    </script>
    <h2 id="hello">你好!</h2>
</body>
事件

事件 | 菜鸟教程

JSON

大家在互联网上来回传递数据,如果没有一个统一的格式,解析起来的难度很大(每个人的编码喜好不一样)。

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。

<script>
	var json1 = { username: "吕布", age: 31 };
	console.log("姓名:" + json1.username + ",年龄:" + json1.age + "岁");
    
    // json数组
    var josnarr = [{ name: "貂蝉", age: 18 }, { name: "小乔", age: 17 }];
    console.log("貂蝉" + josnarr[0].age + "岁了");
    console.log("小乔" + josnarr[1].age + "岁了");
    
    // 复杂的json对象
    var long = {
    	name: "赵云",
    	sex: "男",
   		hobby: ["玉兰白龙驹", "龙胆亮银枪", "青釭剑"]
    };
    console.log(long.name + "的主攻武器:" + long.hobby[1]);
</script>

BOM操作

浏览器对象模型(Browser Object Model (BOM), JavaScript 有能力与浏览器"对话"。

BOM | 菜鸟教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值