JavaScript第二天

102 阅读4分钟

回顾

js的组成: ECMAScript BOM DOM
JS的引入方式: 行内式  内嵌式  外联式
js的注释  
   //
   /**/
js输入输出语句
  alert()
  console.log()
  prompt()
js的变量
  变量是用来存储数据的容器
  var a;
  a = 10;
  var b =11;
  var bb=12; bb=13;
  var aa,bb;
变量的命名规范

数据类型

js是弱类型的语言,js变量的数据类型由值来决定

简单数据类型

Number数值
var age =22;
var f =23.4;
//isNaN 判断变量是否为非数字类型   返回true或者false
var  uAge =21;
var isOk = isNaN(uAge
console.log(isOk) //false
​
console.log(isNaN("123")) ;  //true
String字符串

字符串可以是引号中的任意文本,语法是双引号 " " 和 单引号 ''

// 字符串可以是引号中的任意文本,语法是双引号 " " 和 单引号  ''var str ="欢迎大家";
var str1 = '大家好';
​
// var str3 = hello ;  报错  hello is not defined 没有使用引号,会被认为是js代码,但是js没有这个语法// 单双引号要错开使用
var str3 = "我是 '高富帅'";
var str4 = '我是"高富帅"';
​
// 字符串转义符
// 类似于HTML里的特殊符号,字符串也有特殊符号,我们称为转义符
// 转义符 都是以  \ 开头的
/* 
 \n  换行符
 \  斜杠
 '  单引号
 "  双引号
  \t tab缩进
  \b 空格
​
*/alert("hello 大家好,\n\t\t\t欢迎来\b\b到 '丁鹿学堂' 17期")
​
// 检测字符串的长度  length
var str5 = "my name is lucy";
console.log(str5.length);  //15// 字符串拼接  + 只要由字符串和其他类型变量/值拼接,最终的结果是字符串
console.log("沙漠"+"骆驼");    //"沙漠骆驼"
console.log("丁鹿学堂"+13) ;  //"丁鹿学堂13"
console.log("丁鹿学堂" + true); //"丁鹿学堂true"
console.log(12+13);   //25  number
console.log("12"+24);  //"1224"
​
​
​
var  age=12;
console.log("我的年齡是age岁");  //我的年齡是age岁
// 引引相加
console.log("我的年齡是"+age+"岁");  //我的年齡是12岁
Boolean布尔

布尔类型由两个值: true 和false,true表示真,false表示假

// 布尔型和数字型相加  true为1  false为0
var flag = true;
​
var flag1=false;
// true参与加法运算  当1来看
console.log(flag+1);  // 2// false 参与加法运算  当0来看
console.log(flag1+1);  //1
undefined和null
// 一个变量只声明不赋值,值为undefined,数据类型也是undefined
​
        var str;
        console.log(str);  //undefined
        console.log(str + 1);  //NaN
​
        var str1 = undefined;
        console.log(str1 + "hello");  // "undefinedhello"
        console.log(str1 + 1);  //NaN  not a number   undefined和数字相加,最后的结果是NaN
​
        // 一个声明的变量给null值,里面存的值为空 (学习对象,研究null)
        var space = null;
        console.log(space + "hello");  //"nullhello"
        console.log(space + 1);  //1
      
        

String字符串赋null拼接的问题 blog.csdn.net/m0_46340286…

复杂数据类型

获取变量数据类型

获取变量的数据类型 typeof

// 获取变量数据类型
var num=12;
console.log(typeof num);  //number
console.log(typeof "xiaoxiao");  //string
var bol = true;
console.log(typeof bol);  //booleanvar boll;
console.log(typeof boll);  //undefined
var bol2 = null;
console.log(typeof bol2);  //object

字面量

字面量是在源代码中一个固定值的表示法,通俗点说,就是字面量表示如何表达这个值

数字字面量  3,2,5,6
字符串字面量   "前端"
布尔字面量   true  false

数据类型转换

// 数据类型转换// 使用表单,prompt获取过来的数据默认都是字符串类型,不能进行简单的加法运算,需要进行数据类型转换// var s = prompt("请输入一个数字");   //点确定 s的值为输入的值   点取消 s的值为null
// console.log(typeof s)
// console.log(s+3)// 转换为数字型// parseInt(s)  转换为整型
// console.log(parseInt(s));  // "123" ---123  "123sss"---123  "ss23"-- NaN   "2w2" ----2   "12.4"---12
console.log(parseInt(true))  //NaN parseInt原理:从左往右依次解析字符,遇到非数字字符结束解析,并且将解析好的整数返回 true是非数字字符// parseFloat() 转换为浮点型// console.log(parseFloat(s));// "123" ---123  "123sss"---123  "ss23"-- NaN   "2w2" ----2  "12.4"---12.4
console.log(parseFloat(true))  //NaN// 强制转换  Number
// console.log(Number(s));  //"123" ---123  "123sss"---NaN  "ss23"-- NaN   "2w2" ----NaN  "12.4"---12.4// 隐式转换 
console.log("23"-12) ;  //11console.log("23"*12) ;  //276console.log("23"/12) ;  //1.9166666666666667
​
​
// 转换为字符串型
var num = 78;
console.log(typeof num.toString())
​
var flag =true ;
console.log(typeof flag.toString())
console.log(num.toString())  //"78"// String() 强制转换
console.log(typeof String(90))   //string   "90"
console.log(String(true))  //"true"// 隐式转换
// 字符串和任何类型相加都是字符串
console.log("!23"+12);  //"!12312"
console.log("!23"+true);  //"!123true"
​
​
// 转换为布尔型
console.log(Boolean(null))  //false
console.log(Boolean(undefined))  //false
console.log(Boolean("123")) //true
console.log(Boolean(123))  //true
console.log(Boolean(""))  //false
console.log(Boolean(0))   //false
console.log(Boolean(1))  //trueconsole.log(true + 0)  //1
console.log(false +0 )  //0
console.log(true + 1)  //2
console.log(false +1)  //1

\