JS
01
<script type="text/javascript">
//alert("内部警告");
document.write("Hello World");
console.log("你猜我在那?");
</script>
<script type="text/javascript" src="srcipt.js">
//script标签一旦用于引用外部文件,内部不能写js代码,写了也会被浏览器忽略
alert("内部警告");
</script>
02
<script type="text/javascript">
/*
* js注释
*多行注释,注释的代码不会被执行,但是可以在源码中查看
*要养成良好的编写注释的习惯
*/
/*
* 1.js中严格区分大小写 举例alert();
* 2.js每条语句以;结尾 如果不写浏览器会自动添加,会多消耗系统资源
* 3.js会忽略多个空格和换行,所以我们可以利用空格和换行进行代码格式化
*/
//单行注释
alert(
"121,"+
"1212"+
"234234"
)
</script>
03
<script type="text/javascript">
//字面量和变量
/**
* 1字面量是不可以改变的值
* 比如 1 2 3 "hello"
*字面量可以直接使用,但是我们一般不会直接使用字面量
*古力那扎尔.拜合提亚尔 ,这个名字很多地方都用但是不好记忆
*变量可以用来保存字面量,而且变量的值可以任意改变
*
*
*/
//在js中使用var关键字来声明变量 variable变量的意思
var a;//没有赋值 默认值undefined
var name = "古力那扎尔.拜合提亚尔 ";
alert(aa);
</script>
04
<script type="text/javascript">
/**
* 标识符
在js中由我们自主命名的都可以叫标识符
例如:变量名 ,函数名,属性名都属于标识符
命名规则:
1.标识符中可以包含字母,数字,_,$
2.标识符不能以数字开头
3.标识符不能用关键字和保留字
4.标识符命名一般采用驼峰命名
5.首字母小写,每个单词首字母大写,其余小写
JS 底层保存标识符实际上采用的是Unicode编码
所以理论上utf-8中含有的内容都可以成为标识符
*/
var xingMing="123";
</script>
05
<script type="text/javascript">
//数据类型指的是字面量的类型
//在js中一共有 种数据类型
/**
* string 字符串
number 数值
boolean 布尔
null 空值
undefined 未定义
object 对象 引用类型 上面的都是基本数据类型
*/
/*
字符串
在js中使用字符串需要加引号
使用单引号双引号均可,但是不要混着用
在字符串中可以使用\作为转译字符
\"代表" \'代表' \n换行 \t制表符 \\代表 \
*/
var str='a';
str = "我说:\"你好\"";
str = "\\"
console.log(str);
</script>
06
<script type="text/javascript">
/**
* 在JavaScript中所有的数值都是number类型
最大值1.7976931348623157e+308 1后有308位
如果有数超过这个范围,就返回一个Infinity 正无穷 它也是字面量
NaN表示的是一个特殊的数字 not a number
*/
var a = 123;
var b = "123";
console.log(a);
console.log(b);
console.log(typeof a);
console.log(typeof b);
//console.log(Number.MAX_VALUE*Number.MAX_VALUE);
//console.log(Number.MAX_VALUE);
a = "abc"*"bcd";
console.log(a);
console.log(typeof a);
</script>
07
<script type="text/javascript">
/*
* 布尔值 boolean
只有两个值
true 真 false 假 特别强调不要给值加引号 "true"
主要做逻辑判断
使用typeof 时会返回boolean结果
*/
var sex = true;
console.log(sex);
console.log(typeof sex);
</script>
08
<script type="text/javascript">
/**
* Null 类型就一个值null 专门表示空的对象
*/
var a=null;
console.log(a);
console.log(typeof a);
var b;
console.log(b);//undefined 类型也是undefined
</script>
09
<script type="text/javascript">
/**
* 强制类型转换
指将一个数据类型强制转换为其他数据类型
String number boolean 这些有意义,null等没有意义
1.转string类型 调用toString();方法
该方法不会改变原有的变量,它会将转化的结果返回
*/
var a=123;
var b=a.toString();
console.log(b);
console.log(typeof b);
a=true;
a=a.toString();
//a=null;
//a=a.toString();//Cannot read properties of null (reading 'toString')
//console.log(a);
//console.log(typeof a);
/*
2.调用String()函数 并用我们所转换的变量作为参数
使用String()时对于number和boolean就是调用toString()方法
*/
a=123;
a=String(a);
console.log(a);
console.log(typeof a);
a=null;
a = String(a);
console.log(a);
console.log(typeof a);
</script>
10
<script type="text/javascript">
/*
* 将其他类型转换为number
方法一:Number()函数
字符串转数字 纯数字字符串可以转换
字符串内容有非数字的,转换为NaN
如果字符串是一个或多个空格,转为0
布尔值true为1false为0
null为0
undefined为NaN
*/
var a = "1x23";
a = Number(a);
console.log(typeof a);
console.log( a);
/*
* 方法二 专门应用于字符串
parseInt() parseFloat();
可以将字符串中有效的整数进行转换
*/
var b = "56px";
b = parseFloat(b);
console.log(typeof b);
console.log( b);
</script>
11
<script type="text/javascript">
/*
* 其他进制数字
*16进制 0x开头
8进制 0开头
2进制0b开头,但不是所有浏览器都支持
*
*/
var a = 070;//有些浏览器回档10进制解析
//有些事8进制我们需要在parseInt参数中解析
console.log(a);
a = parseInt(a,8);
console.log(a);
</script>
12
<script type="text/javascript">
/**
* 运算符 也叫操作符
通过运算符可以对一个或多个值进行运算
比如typeof就是一个运算符,可以获得一个值的类型
它会将该值的类型以字符串的形式返回
数学运算符 + - * / %
*/
var a = 123;
//a = a+false;//true 1 false 0
a = a+null;
a = a+NaN;//NaN运算结果就是NaN
a = "1"+"2";//+为连字符
a = undefined+ "2";//任何类型的值和字符串相加都得字符串
a = "1"+2+3;
console.log(a);
</script>
13
<script type="text/javascript">
/**
* 一元运算符 只需要一个操作数
+正好 不会对数值产生影响
-负号 对于非number的值会先转换为number在运算符
+可以将一个非number的值转换为number
*/
var a=123;
a = +a;
a = true;
a=-a;
a = "123";
a = +a;
a = 1+ +"2"+3
console.log(a);
console.log(typeof a);
</script>
14
<script type="text/javascript">
/*
* 自增++
通过自增可以是变量在自身的基础上增加1
对于一个变量自增后,原变量的值会立即自增1
自增分为两种 后++(a++) 和前++ (++a)
无论a++还是++a都会立即使原变量增加1
a++的值等于原变量的值(自增前的值);
++a的值等于新值,(自增后的值)
*/
var a=1;
a++;
var b = 2;
// 1 3 2 3 3
var c = a++ + ++b +a + b++ + ++a;
console.log(a);//3
console.log(b);//4
console.log(c);//12
</script>
15
<script type="text/javascript">
/*
*
js中为我们提供了三种逻辑运算符
!非
可以用来对一个值进行非运算
true 变 false false变true
如果对非布尔值进行运算,则会将其转换为布尔值,然后在取反
可以为一个任意数据类型去两次反,来将其转换为布尔值
原理和Boolean()函数一样
&& 与
可以对负号两侧的值进行与运算返回结果
前后都是true,结果才是true,有一个false结果就是false
前面是false 后面不会运行
||或
有一个是true 结果就是true,两个均是false结果才是false
前面是true,后面不会运行
*/
var a = false;
a = !a;
//console.log(a);
var b=undefined;
b=!!b;
//console.log(b);
//console.log(typeof b);
a=1;
var result = false && a++>2;
//console.log(a);
//与运算 如果两个值都是true 则返回后面的值
//0为false 非0就是true
var r = 5&&0;
r = 0&&NaN
console.log(r);
</script>
16
<script type="text/javascript">
/**
*
= 可以将等号右侧的值赋值给等号左侧
+= a+=5 a= a+5;
-= a-=5; a=a-5;
a* a*=5; a=a*5;
a/ a/=5; a=a/5;
%= a%=5; a=a%5;
*/
var a = 10;
</script>
17
<script type="text/javascript">
/**
* 通过关系运算符可以比较两个值之间的大小关系
> >= < <= != ==
*/
var a=1;
//console.log(a<NaN);//任何值和NaN做比较都是false
//console.log("abc"<="bcd");//比较两个字符串时,比较的是字符串的字符编码
//如果比较的两个字符串的数字,可能会得到不可预期的结果
//注意,在比较两个字符串型的数字时,一定一定要先转型
console.log("1111232323123123123"<"3");
</script>
18
<script type="text/javascript">
/**
*
相等运算符用来比较两个值是否相等
如果相等返回true 否则返回false
使用==来做相等运算
当使用==来比较两个值时,如果值的类型不同
则会自动进行类型转换,将其转换为相同的类型然后在比较
不等于!=
不相等用来判断两个值不等,如果不等返回true,反之false
===全等
用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换
!==不全等
用来判断两个值是否不全等
*/
// console.log(null==undefined);//undefined衍生自null true
//console.log(NaN==NaN);//NaN不和任何值相等,包括本身
var b=NaN;
console.log(isNaN(b));//可以通过isNaN()函数来判断一个值是否是NaN
</script>
19
<script type="text/javascript">
/**
* 条件运算符也叫三元运算符
语法:
条件表达式?语句1:语句2;
执行流程:
条件运算符在执行时,首先对仙剑表达式求值
如果该值为true,则执行语句1,并返回执行结果
如果该值为false,则执行语句2,并返回结果
如果条件表达式的求值结果是一个非布尔值
会将其转换为布尔值后再运算
*/
var a=300;
var b=50;
var c=50;
//var value = a>b?alert("a大"):alert("b大");
var max = a>b?a:b;
max = max>c?max:c;
console.log(max);
max = a>b?(a>c?a:c):(b>c?b:c);//这种方法不推荐使用,不方便阅读
</script>