笔记学习出处:渡一教育 Web前端百大项目
浏览器的组成部分:
1.shell部分
2.内核部分(渲染引擎,js引擎,其他模块)
js的特点:
1.解释性语言
2.单线程
主流浏览器
IE
Chrome
firefox
Opera
Safari
上面浏览器的内核分别是:
trident,webkit/blink,Gecko,presto,webkit
在计算机中,多个任务同时进行叫做异步,多个线程分开执行,叫做同步
js三部分:
ECMAScript,DOM,BOM
js执行队列:
轮转时间片:类似吃饭
编译性语言:C C++ R
优点:快
不足:移植性不好(不跨平台)
解释性语言:JavaScript php python
优点:跨平台
不足:稍微慢
如何引入js?
1.页面级js
2.外部引入js文件
<script></script>
<script src="xxx.js"></script>
要求:
结构(html)行为(js)样式(css)相分离
js基本语法
原始值 stack
Number,String,Boolean,undefined,null
先进后出
引用值 heap
变量当指针看
array,Object,function…data regExp
var arr=[1,2]
var arr1=arr;
arr1.push(3);
这个时候,arr也变了
但是,下面这种情况arr1是不变的。
var arr=[1,2];
var arr1=arr;
arr=[1,3];
document.write(arr1);
js运算符
运算操作符
“+”
1.数学运算,字符串连接
2.任何数据类型加字符串都等于字符串
比较运算符
逻辑运算符
&& || !
凡是遇到undefined,null,NAN,"",0,false–>都会转换成false
全真才为真,有一个假则假
例子:
var a=1&&2;
先看第一表达式转换成布尔值的结果,如果结果为真,那么就会看第二个值转换成布尔值的结果,然后如果只有两个表达式的话,只看第2个表达式就可以返回该表达式的值了。
如果第一个表达式的布尔值为假,那么就不需要看第2个表达式的结果了,直接将第一个表达式的结果返回就可以了。
所以,document.write(a)的结果是2.(因为1是真,那么就直接返回第2个表达式的结果为2)
&&运算符还可以充当短路语句
例子:
2>1 && document.write(“世界是美好的!”)
||
有一个真则为真,全假为假
var num=1||2
先看第一个,如果第一个是真,那么就直接返回第一个,如果第一个为假,那么会看第2个,如果第2个为真,返回第2个的值(只有两个表达式)
所以上面式子中,document.write(num)的结果为1
!
例子:
var a=!123
document.write(a)
结果为false
<script type="text/javascript">
var a; #声明变量a
a=100; #变量a赋值
document.write(a); #打印a
var a=10,
b=20,
c=30,
d=40,
e; #一次申请
document.write(a,b,c,d);
</script>
小练习:
输出1-100之间的质数
<script>
var count=0;
for(var i=0;i<100;i++)
{
//看看每一个i是否为质数
for(var j=1;j<=i;j++)
{
if(i%j==0)
{
count++;
}
}
if(count==2&&i==j)
{
document.write(i+" ");
}
count=0;
}
</script>
另一种方法:
<script>
var count=0;
for(var i=2;i<100;i++)
{
//看看每一个i是否为质数
for(var j=1;j<=Math.sqrt(i);j++)
{
if(i%j==0)
{
count++;
}
}
if(count==1&&i==j)
{
document.write(i+" ");
}
count=0;
}
<<