JavaScript
JS的几种书写方式
- 内嵌式,把js写到script标签中
- 行内式,把js写到html元素的内部
- 外部式,把js写到一个单独的.js文件中,在html里面通过script来引入
1.注释
JS://
HTML:<!-- -->
CSS:/* */
2.字符串
可以使用单引号也可以使用双引号
3.输出
console.log把日志输出到控制台中
4.变量
定义一个变量:
var 变量名 = 初始值;
不管创建的变量是啥类型都是统一使用var这个关键字来表示,至于变量是啥类型取决于初始化的值是什么类型。
使用变量(读取+修改)就和java一样。小问题在于变量修改的时候本来是个数字类型,在赋值的时候可以给他赋值一个数字类型,也可以赋一个字符串类型,可是任意类型,这时候a变量的类型也随之发生改变。
变量的类型在运行过程中,随着赋值而发生改变这种行为称为“动态类型”(包括Python,PHP,Ruby)。
像java这样的语言不支持这种运行时类型发生改变,这种行为称为“静态类型”(包括C,C++,jAVA,Go,Rust)
var num = 10;//创建了一个名字为num的,数字类型的变量
var s = 'hello';//创建了一个名字为s的,字符串类型的变量
var arr = [];//创建了一个名字为ar,数组类型的变量
现在更倾向使用let来代替var,var是旧版本其实是违背直觉。引入let也就有了块级作用域,一个变量在{}内部定义是无法被{}外部访问的。js中var定义而变量{}内部的代码,是可以访问到{}外部的变量的。
5.数据类型
- num:数字,不区分整数和小数
- boolean:true真,false假
- string:字符串类型,很多操作都是和Java类似的,如果字符串里本身就包含了单引号或者双引号,就可以使用单双引号灵活搭配的形式,来避免使用转义字符。js中的转义字符也是支持的。
- undefined:只有唯一的值,表示未定义的值。一个未被初始化的变量就是undefined,这其实是一种非法的情况,不提倡使用。
- null:只有唯一的值null,表示空值,属于合法情况。
- NaN:表示当前的结果不是一个数字,比较常见的操作Not a Number,如果运算得到不是数字的值就会出现NaN
6.求长度
通过length属性,Java里的字符串求长度是length(),谈到长度就得明确长度单位,js此处长度单位是“字符”
let s = "你好";
console.log(s.length);//2
7.字符串拼接
和Java类似,直接使用+来进行拼接
8.布尔类型
在js中布尔类型会被当成1和0来处理,Java不会和数字混淆。
let a = true;
console.log(a+1);//2
这中设定方式为“饮食类型转换”,其实并不科学,如果一个编程语言越支持隐式类型转换,就认为类型越弱(C,JS,PHP认为是弱类型的编程语言),如果一个编程语言越不支持隐式类型转换,认为类型越强(Java,Go,Python认为是强类型的编程语言)。
强类型意味着类型之间的差异更大界限更明确。弱类型意味这类型之间差异不大,界限更模糊。
9.运算符
1)比较操作符
==比较相等(会进行隐式类型转换),只是比较两变量的值,而不比较两个变量的类型,如果两个变量能够通过隐式类型转换,专成来相同的值就认为也是相同的。
!=
===比较相等(不会进行隐式类型转换)&#