一、初识Js
1.关于Js脚本的放置
①行内的写法:<a href="javascript:console.log(6666)">xxxx2</a>
②嵌入式:<script type="text/javascript">
var div1=document.querySelector(".s1");
div1.onclick=function () {
var body1=document.querySelector("body");
body1.style.backgroundColor="red";
}
</script>
③引入式
<script src="src/test1.js"></script>
④嵌入引入式:es6版本的新技术,后面讲
<script src="src/test1.js">
//这是一种错误的用法:既有嵌入式,又有引入式,但是不会报错,而是只执行一个
//但是es6把它的功能实现了
</script>
2.关于变量一些简单的认识
①变量是用来保存数据的(提高复用性(即用一个变量将使用数据存放,以后调用时就不需复制所有数据而是直接调用对应变量即可))
②取数据时记住取得数据为最后一次保存的数据
(
// var a=20;
// var b=30;
// (a++)-(--b)+(a++)+(b++);
// //a=21
// //b=29
// //20-29+21+29
// var c=b--;
// //c=30
// var d=(--a);
// //d=21
// console.log(a,b,c,d);
// //20 29
// //21 29 30 21
今日份失算例题第三行a++与b--都知道ab值已经改变
但是到c d 赋值时都知道把变化后的值给c d
但是就忘记了ab本身的值也变化了
最后ab就写错了=_=|||
)
以及忘了代码再除去优先级时,是按顺序执行的,避免出现先写JS再选中对象去对它执行操作这种低级错误
(最尴尬的是它又不报错而且本身代码没有语法错误,然后同桌两个都是这种情况
咱三搁那儿干瞪眼半天没看出个所以然 =3= 233)
③ 存数据:
如果给一个变量存数据,没有声明,系统会在全局作用域下隐式声明一个变量
如果是显式声明的变量会在脚本加载初,提前声明变量(声明提前)
如果是隐式声明的变量会在脚本加载到那个代码时,再去隐式声明变量,然后在声明提前
比如a=10;console.log(a)
这里就是当运行到a=10时就回去隐式声明a然后声明提前,真的运行这一句实际上是对隐式声明的a进行赋值操作了
3.数据类型
相比起Java与C的学习,Js这边简直是天堂hhh,主要就是数据类型没有那么复杂
Js分为六大基本数据类型和一个引用数据类型
(后来再看到这些也许从es6之后开始,语法还有格式也许会渐渐的向强语言靠齐,以前不觉得,现在慢慢觉得要求的标准严格对于代码编写者来说其实是一种很好的锻炼,要求思维逻辑性强,思路清晰,养成一个比较严密的思维)
(再后来看到Typescript的时候会让你直接在声明的变量之后规定变量的数据类型)
//基本数据:原始数据
var a=20.77;//计算相关的数据:number 数字
var a2="hello"// string 字符串: 人机交互
var a3=true//false boolean:判断
var a4=undefined //undefined没有数据的一种描述
var a5=null//空,没有数据
var a6=symbol("es6_data")//es6 出的新数据(后面写吧我还没看)
//也就是number string boolean null undefined symbol
var a7={}//引用数据:对象 数组函数 类数组 object
// console.log(c)
//引用数据分为2大类:函数function 对象object
4.字符串以及关于加号和字符串的相关用法
目前主要说的是拼接的作用啦,加号的一边是字符串,则另一边就会被当做字符串而拼接起来
以前写var color2="rgb("+r+","+g+","+b+")"
就只能这样一个个引号的去拼接有时候还容易打错
今天学到一个 var color3=rgb(${r},${g},${b})
(在等号右边还要加上反引号噢,由于显示的问题不能写出来)
5.调试
1.断点
2.控制台:console source
3.系统提供的工具(方法)(最常用) 例如:
// var str="你的余额不足"
// alert(str)
// var re=confirm("你确定进入下一个页面?")
// console.log(re)
// var a="这是一个信息,但是它是红色的"
// console.error(a)
// var obj={name:"jack",age:"18"}
// console.table(obj)
6.布尔值
这里就要看清楚问题了:
如果问的是a的数据类型才是boolean类型
但是问的是re的数据类型实际上就在问的是typeof(boolean)
而boolean本身是一个字符串所以这里是string噢
//typeof(a) 也可写作typeof a 检测一个数据的类型
返回值是单词:只会是number string null undefined boolean object symbol
//面试点:typeof 返回值的数据类型是字符串
var a=true;
var re=typeof(a);
//re的数据类型是什么
console.log(typeof re);
7.关于if语句里不会进入循环体的条件
当以下几个符号写在if括号内时,不会进入循环体:
1.+0,-0,0
2.空字符串:""
3.undefined
4.NaN
5.![ ]
6.[ ]==[ ]
比较神奇的就是[ ] == [ ]
的判断是false
,[ ] = ![ ]
是true
8.关于等号
1.一个等号是赋值 例:var a = 20;
2.两个等号是作比较 例:if(a==0)
①对于基本类型来说就是值相等即可
②对于应用类型来说就是都指向一个空间
3.三个等号即是要求值相等,且数据类型相同,其实就是“同一人”啦,也就是说一个变量本身才可以用
三个等号去"等于"自己
①对于基本类型来说就是值相等,且数据类型相同
②对于应用类型来说就是都指向一个空间
今日份总结完毕,我这看起来都不像是正经程序猿写的博客233
不过没关系啦,就算成为大佬也要这么写,太严肃也不行=w=
hhh回见(严肃不行,但是要严谨这是必须的)