每天补充一点 一些零碎的小知识点

day1

不会优先级怎么办

优先级不清楚了可以用()强行改变优先级 从而遇见不清楚的就直接套()从而真正解脱了背顺序表的烦恼 只有三个优先级比()高 分别是:"[]"(对象属性命名) “.”(对象属性命名) “new”(创建一个新对象) 都是对象相关的

case
case比较是全等比较 即=== 且不加break 如果比较结果为true则会从当前case处开始执行代码 即后面的不管结果是什么都执行

		<script type="text/javascript">
			switch("1"){
      
			case 1:
			alert("狗");
			break;
			case "1":
			alert("猫");
			break;
			case "2":
			alert("hh");
			break;
			default:
			alert("ss");
		}
		script>

不加break 如果比较结果为true则会从当前case处开始执行代码 即后面的不管结果是什么都执行
可加break在第一次为true的地方退出此语句退出

day2

网页中打印空格 for循环执行顺序

 ”在html网页中输出一个空格

for执行顺序

:for(1初始化表达式;2条件表达式;4更新表达式)
{
3语句;
}

对一个数开方

可以用Math.sqrt();方法 这个函数返回值为所求数的开方

<script type="text/javascript">
			var a=Math.sqrt(16);
			console.log("a="+a);
		script>

day3

js中 六个数据类型 五个为基本数据类型 剩下的object被称为引用数据类型
因为五个基本数据类型都是单一的值,值和值之间没有任何联系,所创建的都是独立的,不能成为一个整体; 所以引入对象数据类型(object) 他属于一种复合的数据类型,在对象中可保持多个不同数据类型的属性

对象的分类:

(1)内建对象
-由ES构建中定义的对象,在任何的ES的实现中都可以使用 如:Math String Number Boolean Function Object…
(2)宿主对象
由JS的运行环境提供的对象,目前来讲主要是由浏览器提供的对象 如:BOM DOM 像concole.log(); document.write();这种直接可以拿来使用由浏览器直接提供的叫做宿主对象。
(3)自定义对象
由开发人员自己创建的对象

检查对象中是否含有指定的属性

in 运算符 通过该运算符可检查一个对象中是否含有指定的属性 如果有则返回true 没有则返回false
语法 “属性名” in 对象

<script type="text/javascript">
			var obj=new Object();
			obj["123"]=789;
			
			console.log("text" in obj);
			//返回false 
		script>

基本和引用数据类型

基本数据类型
JS中的变量都是保存到栈内存中的,基本数据类型的值直接在栈内存中存储,值与值之间是独立存在的,修改一个变量不会影响其他的变量。如:
var a=123; var b=a; a++;此时 a变为124,但b值不变

引用数据类型(对象)
(变量也可以是对象)
JS中对象是保存在堆内的 当创建一个对象 var obj=new Object(); 会在堆里开辟一个空间,用来存放这个对象。

这个空间有一个地址名,变量obj这个名字此时在栈里面,它对应在栈内存放值的地方放的是堆里所开辟空间的地址名。当为对象添加属性值则是直接存放在堆里面。

若 var obj1=obj;则使创建的变量obj1也指向堆里的obj所开辟空间的地址名(对象的引用),所以修改他们一个对象的属性,另一个相对应的属性也会改变。但是这还是两个变量,两个对象,他们并不相等

特殊情况:当给他们其中一个变量赋值为NULL则不会影响另一个变量 因为设置为NULL就表示 他的值变为NULL已经失去所开辟空间的地址 与其失去了联系 如obj1=null;此时 他值就为null,但 obj不变 还指向 所开辟的空间。

总结:基本数据类型直接在栈里面存贮,一个变量赋给另一个变量也只是把他当值赋给另一个,赋完值之后各自没有任何关联,但引用数据类型只是引用,各自的值都是引用对应堆空间的地址,一个变量赋给另一个也只是把地址赋给另一个,赋完后还是都指向同一个堆中的空间。所以一个对象变化也会影响到另一个对象。

你可能感兴趣的:(js笔记,javascript)