JavaScript基础

一、了解JavaScript : 1955-liveScript->JavaScript Netscape出品
JavaScript概述:轻量级语句(弱语言),单线程语言,脚本语言
JavaScript构成:ECMAScript(基本语法及相关对象)、DOM(文档对象模型)、BOM(浏览器对象模型)
优势:适用几乎全部浏览器(v8引擎)


二、JavaScript基础:
1)书写方式:
1.内部形式(适合代码少):<script>console.log('你好 世界')</script> 推荐放<html>下面
2.外部形式(推荐): 引入<script src=“js文件位置”></script>
再在对应js文件里console.log('你好 世界')
3.内联形式(少用):<a href="链接">去链接</a>
<a href="链接1" onclick=“alert('你好 世界')‘’>去链接1</a> //onclick点击事件

2)变量定义(var)
var num=‘sum’
1.!数字 字母 下划线 $ 组成 (不可数字开头)
2.驼峰命名:(大驼峰)第一个字母就大写
(小驼峰)第二个单词字母大写
3.不能使用关键词,

 

3)注释:

ctrl+/ 当行注释
alt+shift+a 多行注释

4)数据类型:
number类型(数值)(数值显示蓝色)
string字符串类型(‘’ “”)(字符串显示黑色)
boolean布尔类型(true fault )
undefined类型 未定义(未给值)
null空类型 (显示object)(undefined是null对象扩展(父子关系))

typeof检测类型:null空类型 (显示object)

5)类型转化:var str = number1.toString()//number转string类型(string>number 隐式转化 tostring)
number类型转化:
当数值无法被解析NaN
parseInt截取整数
parseFloat截取一个小数点

isNaN是NaN(not a number)返回true不是返回false

无穷大
var max = infinity
无穷小
var min = -infinity

Boolean转化:

String: 非空字符串为true, 空字符串为false

Number: 非0数值为true, 0或者NaN为false

Object: 对象不为null则为true, null为false

Undefined : undefined为false

Boolean转number:

(false 0 true 1)
undefined和null转number:
undefined->NaN
null->0

6)运算符和表达式
算数运算+ - * / % ++ --
// + string和number 连接操作 string>number 自动转string
console.log('123'+1); //1231

// - * / % 全部自动转number
console.log('12'-1); //11
console.log(true -1);//0
console.log(undefined - 1);//NaN
console.log(null -1);//-1
console.log(true*3);//3

%大数取余小数,得到余数,小数取余大数得小数
++ -- 分前置后置 前置先执行++--操作在执行对应代码 后置先执行对应代码再执行++--操作

逻辑运算&& ||
比较运算符 > < >= <= == != ===(类型和值一模一样) >== <==
!==
赋值运算符 = += -= /= *= %=
位运算
<< >>二进制移位
~~去小数

!!执行顺序有括号先括号,再乘除取余 再比较

三元运算符(三目运算符)
?true:false


number对应的方法
保留小数的方法 toFixed

 

 练习:

  • 代码1: 数字字符串参与运算的情况1
1 console.log(1 + "2" + "2");

很明显输出的是122,并且:

console.log(typeof (1 + "2" + "2"));

   输出的是string类型.上面的结果是毫无疑问的.

 

  • 代码2: 数字字符串参与运算的情况2
console.log(1 + +"2" + "2");
console.log(typeof (1 + +"2" + "2"));//string

  代码2中的第一个输出的是32, 因为+"2"会默认把字符串2转成number类型的2,所以再跟后面的字符串相加等到最终的32,并且,输出的仍然是字符串类型.

 

  • 代码3: 字符串参与运算
1 console.log( "A" - "B" + "2");//NaN2
2 console.log( "A" - "B" + 2);//NaN

  第一行输出的是NaN2,是因为 "A" - "B"输出的是NaN, 当NaN与字符相加的是,NaN会默认转成字符串类型,即"NaN",所以最终结果是NaN2

  第二行输出的是NaN,毫无疑问,只是为了跟第一行做对比.

 

  • 代码4: undefined 和 null 参与运算
1 console.log(undefined + 2);
2 console.log(null + 2);

  这里也涉及到了默认转换问题, undefined和null与数字相加会先默认转成数字类型,然后再进行相加.此时,我们需要看一个代码:

1 console.log(Number(undefined));//NaN
2 console.log(Number(null));//0

  结果就出来了,要记住,undefined默认转成数字类型是NaN,而null默认转成数字类型是0,这也是undefined和null的其中一个区别. 

  所以,综上所述,代码4分别输出的是NaN 和 2.

 

 

// 入职薪水10K,每年涨幅入职薪水的5%,50年后工资多少?
var money = 10000;
for (i = 0; i <50; i++) {
    var lx = 0.05 * money;
    var M=money += lx;
}
document.write("第"+i +"年" + M)
document.write('<br>')


// 为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?
document.write('<br>')
var day, hour, minute;
num = 89;
day = num / 24;
hour = num % 24;
document.write(parseInt(day) + '天' + parseInt(hour) + '时'  );
document.write('<br>')/

// 小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。 提示:摄氏度与华氏度的转换公式为:摄氏度 = 5/9.0*(华氏度-32)
document.write('<br>')
var ssd,hssd;
hssd = 80;
ssd = 5 / 9 *(hssd - 32)
document.write(hssd + '摄氏度' +'=')
document.write(ssd.toFixed(3)+ '华摄氏度')
document.write('<br>')


// 给定一个三位数,分别把这个数字的百位、十位、个位算出来并显示。
document.write('<br>')
var qian, bai , shi ,ge ,nums;
nums=1234;
qian=nums / 1000;
bai=nums / 100 % 10;
shi=nums / 10 % 10;
ge=nums % 10;
document.write(nums);
document.write('<br>')
document.write(parseInt(qian));
document.write('<br>')
document.write(parseInt(bai));
document.write('<br>')
document.write(parseInt(shi));
document.write('<br>')
document.write(ge);


document.write('<br>')
var number=prompt("请输入一个四位数值");
document.write("千位为:"+ parseInt(number/ 1000));
document.write('<br>')
document.write("百位为:"+ parseInt(number/ 100 % 10));
document.write('<br>')
document.write("十位为:"+ parseInt(number/ 10 % 10));
document.write('<br>')
document.write("个位为:"+ parseInt(number % 10));
document.write('<br>')
posted @ 2022-07-25 19:36  苏沐~  阅读(44)  评论(0编辑  收藏  举报