未来周记九

js基础

1.语法

1.让页面弹出一个警告框
alert(“内容”)
2.在计算机的页面上输出一个内容
document.write()可以向body中输出一个内容
3.在控制台输出一个内容
console.log()的作用是向控制台输出一个内容
js代码编写的位置
可以将js代码编写到标签的onclink属性中
当我们点击按钮时,js代码才会执行
虽然可以写在标签的属性中,但是他们属于结构与行为耦合,不方便维护,不推荐使用
可以将js代码写在超链接中,点击超链接时会执行js代码

2.注释

多行注释类似与学过的
1.js中严格区分大小写
2.js中每一条语句以分号结尾(如果不写分号浏览器会自动加上但会加错)
3.js中会忽略空格和换行

3.字面量和变量

字面量都是一些不可改变的值
比如1 2 3 4 5 、
字面量使用可以直接引用
变量
变量可以保存字面量,变量可以任意改变
声明变量
在js中使用var关键字来声明一个变量

4.标识符

在js中所有的可以与我们自主命名的都可以称为是标识符
eg:变量名,函数名,属性名
命名标识符的规则
1.标识符可以含有字母,数字和$_
2.标识符不能以数字开头
3.标识符不能是Es里的关键字or保留字
4.驼峰命名法(首字母小写,每个单词的开头字母大写,其余小写)为了美观
Js底层保存标识符实际上采用的是unicode编码可以使用文字
请添加图片描述

六大数据类型

1.String字符串

String字符串(引号引起来)
引号不能嵌套
在字符串可以使用\作为转义字符
\n表示的是换行
\ '表示的是’
\ '’表示的是” “
\t表示的是制表符
\ \表示的是\

2.Number数值

数字

js中表示的数字的最大值

Number.MAX_VAlUE(1.7976931348623157e+308)

表示大于0的最小值

number.MIN_VALUE(5e-324)

如果使用NUMber表示的数字超过了最大值,则会返回一个Infinity表示的是正无穷,-imfinity表示的是负无穷,此类型为number
NaN not a number(不是number )
可以使用一个运算符typeof
来检查一个变量的类型
语法是typeof 变量
检查字符串时,会返回String
检查数值时,会返回number
在js中整数的运算可以保证准确
如果进行浮点元,可能得到一个不精确的结果
所以不要使用js进行高精度的计算

3.boolean布尔值

Boolean true or false

4.Null空值

Null类型的值只有一个就是null

null表示一个为空的对象使用typeof检查一个null值为会返回object

5.Undefined未定义

Undefined类型的值只有一个就undefined

6.object 对象(引用数据类型)

强制类型转换

指将一个数据类型强制转换为其他的数据类型。转化为 string number Boolean
将其他的数据类型转化为 string number Boolean
方法一
调用被转换数据类型的tostring()方法
该方法不会影响到原变量,它会将转换的结果返回
但是注意:null和underfined这两个值没有toString如果调用他们的值会报错
方式二:
调用String()函数,并将被转化的数据作为参数传递给函数
时用string()函数做强制类型转换时
对于Number和boolean实际上就是调用的tostring()方法
但对于null和undefinded就不会调用tostring()方法
将其它的数据类型转换为number
转换法1:
使的是Number()函数
字符串–>数字
1.如果是纯数字的字符串,则直接将其转换为数字
2.如果字符串中有非数字的内容,则转化为NaN
3.如果字符串是一个空串或者一个全是空格的字符串
布尔–>数字
true转成1
false 转成0
null–>数字 0
undefined–>数字NaN
转换方式二
这种方式专门用来对付字符串
parseInt()把一个字符串中的有效的整数内容取出来(只会取整数)
然后转化为Number
parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数
如果对非String会先将其转化为String然后在操作
在js中如果需要16进制的数字,则需要以0x开头
如果需要8进制的数字,则需要以0开头
二进制是以0b开头
可以在parseInt()中传递第二个参数,来指定数字的进制
将其他的数据类型转化为boolean
调用boolean()
数字–>布尔
除了0与NaN其余都是true
字符串—>布尔除了空串其余都是true
null和undefined都会转换为false
对象也会转换为true

运算符

运算符号
eg:typeof就是运算符,可以来获得一个值的类型
运算符的返回类型
当对非number类型的值进行运算时,会将这些值转换为Number
任何值和NaN做运算时都得NaN

运算符的优先级

请添加图片描述

请添加图片描述

流程控制语句

break表示的退出switch语句
break关键字可以用来退出switch或循环语句
break关键字,会立即终止离他最近的那个循环语句
计时器
console.time(“名字”);
console.timeEnd(“名字”)
死循环

for(;;)

{alert("hello");}

对象

基本数据类型都是单一的值“hello”
值之间没有任何关系
对象是一种复合的数据类型,在对象中可以保存多个不同的数据类型的属性
对象的分类
1.内建对象
2.宿主对象
由Js的运行环境提供的对象,目前来讲主要只由浏览器提供的对象
比如BOM DOM
3.自定义对象开发人员自己创建的对象
创建对象
使用new关键字调用的函数,是构造函数construcuor
构造函数就是专门用来创建对象的函数
使用Typeof检查一个对象时,会返回objec
请添加图片描述
请添加图片描述
对象添加属性

属性名

对象的属性名不强制要求遵守标识符的规范

什么乱七八糟的名字都可以用

但是我们使用是按照标识符的规范去做

请添加图片描述
属性值

Js对象的属性值,可以是任意的数据类型
甚至也可以是一个对象
检查是否含有指定的属性beeb.png)
请添加图片描述

基本数据类型和引用数据类型的区别

请添加图片描述
在这里插入图片描述
使用函数表达式来就是一个变量来存储匿名函数(没有函数名 )
alert函数没有返回值
实参可以是任意值

作用域

作用域指一个变量的作用的范围
一共两种作用域
1.全局作用域
直接编写在script标签中的Js代码,都在全局作用域
全局领域在页面打开时创建,在页面关闭时销毁
2函数的作用域
调用函数是创建函数的作用域,函数执行完毕后函数作用域销毁
每调用一次函数就会创建一个新的函数作用域,他们之间相互独立的
函数的作用域中他们可以访问全局作用域的变量
在全局作用域中无法访问函数作用域的变量
当函数作用域中操作一个变量中,他会先在自身作用域中寻找,如果有就直接使用
如果没有就向上一级的作用域中寻找,直到找到全局作用域
在函数作用域中也有声明提前的特性
使用var关键字的变量,会在函数中所有的代码执行之前被声明
函数声明会在函数中所有的代码执行之前被声明
在函数中,不是用var声明的变量都会成为是全局变量

JS基础this

解析器在调用函数每次都会向函数内部传递进一个隐含的参数
这个隐含的参数就是this,this指向的是一个对象
这个对象我们成为是函数执行的上下文对象的
根据函数调用的方式不同,this会指向不同的对象
1.以函数的形式调用时,this永远都是Window
2.以方法的形式调用时,this就是调用方法的那个对象

使用工厂方法创建对象``

<head>
	<meta charset="utf-8">
	<title></title>
	<script type="text/javascript">
		function creatDog(name,age){
		var obj=new Object();
		obj.name=name;
		obj.age=age;
		obj.sayHello=function(){
			alert("旺旺~~~");
		};
		return obj;
		}
		var dog=creatDog("旺财",18);
		console.log(dog);
        dog.sayHello();
	</script>
</head>

创建一个构造函数,专门用来创建Person对象的
构造函数就是普通的函数,创建方式和普通的函数无区别
不同的是构造函数习惯首字母大写
普通函数是直接调用,而构造函数就需要使用ne关键字来调用
构造函数的执行流程
1.立即创建一个新的对象
2.将新建的对象设置为函数中的this,在构造函数中可以使用This来引用新建的对象
3.逐行执行函数中的代码
4.将新建的对象作为返回值返回
使用instanceof可检查一个对象是否是一个类的实例
语法
对象instanceof构造函数
如果是,则返回true,否则返回false
所有的对象都是Object的后代
请添加图片描述

原型对象

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			function MyClass(){
				
			}
			MyClass.prototype.namn="我是原型中的名字";
			/* 创建一个对象 */
			var mc =new MyClass();	
				console.log(mc.namn);
				mc.name="123";
				
				/* 用in检查对象中是否含有某个属性值如果对象中没有但是原型中有,也会返回true */
				// console.log("namn" in mc);
				/* 可以使用对象的hasOwnProperty()来检查对象自身中是否含有该属性 */
				// 使用该方法只有当对象自身中含有属性时
				// hasOwnProperty();是原型中的方法
				/* 原型对象也是对象他也有原型当我们使用一个对象的属性或方法时会先在自身中寻找
自身中如果有,则直接使用
如果没有则去原型对象中寻找,,如果有则使用
如果没有则去原型的原型去寻找
Object对象的原型没有原型如果在Object中依然没有找到,则会返回undefined*/
				console.log(mc.hasOwnProperty("name"));
		</script>
	</head>
	<body>
	</body>
</html>
  • 27
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值