Javascript是一种 解释语言,可以跨平台的单线程语言(同一时间只能干一件事,可以用来回切换 给视觉提供同时进行的效果)
- 引入方式
(1)和CSS样式表一样可以从外部引入
(2)页面内嵌 可以加在< body >标签内部
JS变量类型
由值决定类型 动态解释随时可以变换类型
(Ⅰ)原始值
(1)number:var b=10;数值类 天生为浮点型
(2)string:var a=“abcde”; 字符串 单双引号都可以表示(注意:多个空格会合并最终只显示一个)
(3)boolean:有两个值 false true(输出直接显示英文字母)
(4)underfined :一个变量经过声明为赋值就显示(underfined)
(5)null:
(Ⅱ)引用值
(1)array object function date regexp
##堆和栈:
栈:值与值之间的赋值 拷贝
<script type="text/javascript">
var arr=[1,2];
var arr1=arr;
arr=[1,3];
document.write(arr1); //输出结果为:1,2
document.write(arr); //输出结果为:1,3
</script>
堆:引用值拷贝过去的是地址
<script type="text/javascript">
var arr=[1,2];
var arr1=arr;
arr.push(3);
document.write(arr1); //输出结果为:1,2,3
document.write(arr); //输出结果为:1,2,3
</script>
##JS 运算:
看一个JS 的运算吧:
**+ 符号:**任何数据类型 与 字符型串 相加=字符串
<script type="text/javascript">
var a=1+1+"a"+1+1; //运算结果:2a11
document write(a);
</script>
运算过程:其实js 的运算过程很简单 符合数学运算符的顺序 自左向右,(优先级:"=“最弱 ,”()"最强)
不过在运算的时候会进行类型转换,我们所知道的类型转换有 Number() parseInt() parseFloat(),我相信这些类型转换的规则你已熟记于心了
但就拿上面这个题来说数字加字符串的值为什么还是字符串呢,这个因为在他们俩之间还偷偷进行了隐式类型转换
常见的隐式类型转换:
1.)++/-- +/-(一元运算符正负号)进行运算时会 隐式进行Number() 类型的转换
2.)+ 转换为String
3.)- * / % 转换为Number
4. && || ! 转换为Boolean
5.) < > <= >=
对于字符串与字符串的比较(比较的是ASCⅡ,无转换)
对于 字符串与数字的比较(转换为Number)
6.)== !=
(nudefined == null)结果:true
7.) ===绝对等 !==绝对不等
不发生类型转换
(nudefined===null)结果:false