JavaScript基础学习笔记(1)

要开始学习JavaScript了,这是一个比前边略大的工程项目加油!!

1.简介

  • 在HTML中JavaScript代码必须在<script> </script>标签之间

2.输出

(1)显示方案

  • window.alert()警告框
  • document.write()HTML输出
  • innerHTMLHTML元素
  • console.log()谷歌浏览器的控制台

(2)实例

  • innerHTML,结果是在文字的下方输出数字1(是显示数据常用的方法)
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<div>JS的第一个实例</div>
		<div id="one"></div>
		<script>
			document.getElementById("one").innerHTML = 1;
		</script>
	</body>
</html>
  • document.write()在文档完全加载完后使用,会删除已有HTML,且此方法用于测试
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<div>1+1=?</div>
		<button type="button" οnclick="document.write(1+1)">查看结果</button>
	</body>
</html>
  • 浏览器会弹出警报框
<script>
	window.alert(10);
</script>
  • 浏览器控制台会显示数据
<script>
	console.log(10);
</script>

2.语句

(1)语句

  • 由值、运算符、表达式、关键词和注释组成
  • 用分号分隔(推荐使用)
  • 可以使用空格(运算符边)和折行(每行80个以内看着比较舒服丫呀丫!)
  • 注释 “ // ” 双斜杠或 “ /* */ ”

(2)关键词

JavaScript保留词,不可用于变量名
在这里插入图片描述
(该图片来源于https://www.w3school.com.cn)

(3)标识符

  • 可包含字母,数字,下划线以及美元符号
  • 必须以字母开头
  • 对大小写很敏感
  • 变量名使用:①下划线的方法;②以小写字母开头的驼峰格式
  • 放入引号中的数值会被认为是字符串进行级联

(4)运算和运算优先级

  • 加减乘除——“+,-,*,/”
  • 余数——“%”
  • 递增,递减——“++,–”
  • 幂——“**”(Math.pow(x,y)也是同样的作用)
  • 括号的优先级最高

(5)数据类型

  • 字符串值:使用单引号或双引号都可以
  • 数值:整数,小数,科学计数法都可
  • 布尔值:true,false
  • 数组:由方括号书写,项目由逗号分隔
  • 对象:由花括号书写,项目由逗号分隔
  • 使用“typeof”来确定变量的类型
  • undefined和null值相等,但类型不同
    undefined的类型是undefined
    null的类型是object
  • 原始数据:可以返回原始数据之一的(string,number,undefined,boolean)
  • 复杂数据:可以返回function和object之一的

3.函数

函数由关键词“function”来定义
使用函数声明或函数表达式

(1)函数声明

function functionName(parameters) {
   要执行的代码
}

(2)函数表达式

  • 函数表达式可以在变量中存储,此变量可以被用于函数
    此时函数是匿名函数
var a = function(x,y){ return x + y;};
var b = a(1,2);

(3)Function()内建

可以通过名为Function()的内建函数构造器来定义

var oneFunction = new Function("x","y","return x + y");
var a = oneFunction(1,2);

(4)一些方法

  • toString()方法可以以字符串返回函数
function oneFuntion(x,y){
	retrun x*y;
}
var a = oneFunction.toString(); 

(5)函数提升

  • hoisting是将声明提升到作用域顶端的行为(默认)
  • 应用于变量声明和函数声明
  • 使用表达式定义的函数不会被提升

(6)自调用函数

需要对函数添加括号指示它是一个函数表达式,并在结束时添加小括号。

(function (){
	var a = 2+1;
})();

(7)箭头函数

  • 使用简短的语法来编写函数表达式
<script>
const x = (a,b) => a + b;
document.getElementById("one").innerHTML = x(1+1);
</script>
  • 不适合定义自己的对象方法,没有自己的this
  • 必须在使用前进行定义
  • 使用const更安全
  • IE11或更早的版本不支持

(8)函数参数

  • 在函数定义中列出的名称,传递到函数或由函数接收到的真实的值
  • 最好为参数设置默认值
  • 如果函数参数传递过多可以使用arguments对象(内置函数)
<!DOCTYPE html>
<html>
<body>
	<p>找到最大的数字</p>
	<p id="one"></p>
	<script>
		function findNum(){
			var i;
			var max = -Infinity;
			for(i==0;i<arguments.length;i++){
				if(arguments[i] >= max){
					max = arguments[i];
				}
			}
			return max;
		}
		document.getElementById("one").innerHTML = findNum(10,20,29);
	</script>
</body>
</html>

(9)函数调用

  • 以函数形式调用函数
    函数被定义时函数内部代码不会被执行,当调用函数时内部代码会执行。
  • this关键字(待补充)
    无特定指示调用对象时,默值为全局对象。在web浏览器中,全局对象就是浏览器对象

(10)call()方法

  • weLike是一个属性方法,它归属于fruit方法,fruit是weLike的拥有者
var fruit = {
	iLike : "orange",
	heLike: "apple",
	weLike: function(){
		return this.iLike + "and" +this.heLike;
	}
}
fruit.weLike();
  • 调用fruit的weLike方法并应用于fruit1对象中
var fruit = {
	welike: function(){
		return this.iLike + "and" +this.heLike;
	}
}
var fruit1 = {
	iLike = "banana",
	heLike = "kiwi fruit",
}
var fruit2 = {
	iLike = "peach",
	heLike = "pear",
}
fruit.weLike.call(fruit1);
  • call()方法可以接收参数fruit.weLike.call(fruit1,tomatoes,rice);

(11)apply()方法

  • 与call()方法很类似,call()方法分别接受参数,apply()方法接受数组形式的参数
    fruit.weLike.call(fruit1,[tomatoes,rice])
  • 因为JavaScript数组没有max方法,所以用Math.max(1,2,3);
  • Math.max.apply(null,[1,2,3]);
    Math.max.apply(Math,[1,2,3]);
    Math.max.apply(0,[1,2,3]);
    Math.max.apply(" ",[1,2,3]);
    在这些情况下都会找打最大值,返回3
  • 在严格模式下,如果apply()方法的第一个参数不是对象,那它将成为调用函数的所有者;在“非严格”情况下,它会成为全局对象

4.语法

(1)初识对象

  • 对象就像生活中的某一件物品,同一类物品都有相同的属性,但是属性值会不同,每一件物品都有相同的方法,但是方法会在不同的时间被执行
  • 对象也是变量,但是对象可能会包含很多值
    值对被称为属性
var dianshan = {speed : "100" , color : "绿" , size : "small"};
var dianshan = {
	speed : "100" , 
	color : "绿" , 
	size : "small"
};   //折行与空格都是被允许的
  • 对象执行的动作是方法,是作为属性存储的函数
    all:function(){ return "小电扇是" + this.color + "速度是" + this.speed;}

  • 访问对象属性有两种办法,例:
    dianshan.speed;
    dianshan["speed"];

  • 访问对象方法dianshanshili = dianshan.all();此时可以返回该属性代表的值;
    若出现dianshanshili = dianshan.all;此种情况,会返回该all函数定义

js的for…in循环

循环中的代码会为每一个属性执行一次代码

<!DOCTYPE html>
<html>
<body>
    <p id = "one"></p>
	<script>
		var x;
		var result = "";
		var dianshan = {
			speed : "100" , 
			color : "绿" , 
			size : "small"
		};
		for(x in dianshan){
			result += dianshan[x];
		}
		document.getElementById("one").innerHTML = x;
	</script>
</body>
</html>

(2)事件

<button onclick='document.getElementById("demo").innerHTML=Date()'>现在的时间是?</button>
  • 常见的HTML事件:
    onchange:HTML 元素已被改变
    onclick: 用户点击了 HTML 元素
    onmouseover:用户把鼠标移动到 HTML 元素上
    onmouseout:用户把鼠标移开 HTML 元素
    onkeydown:用户按下键盘按键
    onload:浏览器已经完成页面加载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值