模板字符串
1. 模板字符串
var str = 'hello'
var str = "hello"
var str = `hello` 模板字符串
模板语法 `${变量}`
${简单运算}
2. 作用
2.1字符串拼接
2.2换行不用连接符
<script>
function test1() {
var message = 'world'
var str = `hello: ${message}`
console.log(str)
}
//2.1字符串拼接
function test2(){
var a = 10
var b = 20
var c = a + '+' + b + ' = '+ (a+b)
console.log(c)
}
// test2()
function test3(){
var a = 10
var b = 20
var c = `${a}+${b}=${a+b}`
console.log(c)
}
// test3()
function test4(){
var str = '<div>'+
'<h2>模板字符串</h2>'+
'<p>1.作用</p>'+
'</div>'
document.write(str)
}
// test4()
function test5(){
var title = '模板字符串'
var str = `<div>
<h2>${title}</h2>
<p>1.作用</p>
<p>拼接字符串,换行不用连接符</p>
</div>`
document.write(str)
}
test5()
</script>
严格模式
js的不严格体现
1. 变量不声明也能使用
2. 函数形能可以重复
开启严格模式 'use strict'
<script>
'use strict' // 开启严格模式
// var num //定义变量
num = 100 //使用变量 给变量赋值
console.log('num ',num)
function fun(m,m){
console.log('m ',m, ' m ',m)
}
fun(100,200)
</script>
字符串字节长度
编写一个方法,求一个字符串的字节长度。 一个英文字符占用一个字节,一个中文字符占用两个字节
提示:中文字符unicode编码大于255
字符unicode编码
str.charCodeAt(0)
如 'jt编程实现学生表格显示'
分析:
初始化统计字节个数变量 count=0
循环遍历字符串
判断当前字符unicode编码是否大于255
如果大于 count += 2
如果小于 count += 1
var str = 'javascript编程实现学生表格显示'
var count = 0 // 统计字节个数
for (var i = 0; i < str.length; i++) {
if(str.charCodeAt(i) > 255){
count += 2
}else{
count += 1
}
}
document.write('字符串中字节个数是 '+count)
统计字符个数
1.统计字符串中不同字符的出现次数?
'abcdefabcadefkmmkggcc'
分析:
Object
{
a: 3
b: 2
c: 4
d: 2
...
}
计数器:
count = 0
count++
统计分数段人数 90-99 3人 80-89 2人
var num = [11]
num[10] 100
num[9] 90-99
...
1. 定义一个空对象存储字符出现次数,属性名是字符,属性值对应字符出现次数 {a:2,b:3...}
2. var obj = {}
obj.a = 1 {a:1}
obj.b = 1
3. 循环遍字符串
判断obj对象中是否已经有该字符
如果有值加一
如没有,作为新属性添加,值赋值为1
function getCountString() {
var str = 'abcdefabcadefkmmkggcc'
var obj = {} //存储各个字符出现次数
// 循环遍历字符串
for (var i = 0; i < str.length; i++) {
var chars = str.charAt(i) // a
// 判断obj对象中是否已经有该字符
// 当对象属性是变量时,通过中括号访问
if (obj[chars]) {
obj[chars]++
} else {
obj[chars] = 1
}
}
// 遍历对象for-in
for(var key in obj){
console.log('key: ',key + ' value : ',obj[key])
}
}
getCountString()
function test() {
var obj = {
name: 'jack',
age: 18,
//a:1
}
//判断对象obj中是否有属性 a
console.log('obj.a ', obj.a)
// if语句条件表达式值为undefined、null、''、0 自动转为布尔值 false
if (obj.a) {
console.log('存在a')
} else {
console.log('不存在a')
}
}
// test()
数学对象Math
Math 数学对象
1. 处理数学问题
2. 创建方式
不需要使用构造函数创建,它比较特殊直接使用就可以,像这样的对象称为类对象
Math.方法()
3. 方法
random 随机数
ceil 向上取整
floor 向下取整
round 四舍五入
abs
max
min
...
实例对象 和 类对象
var obj = new Object()
obj = {}
obj 实例对象
Math 类对象
javascript内置对象
1. 对象做什么的,有什么功能?
Object对象
存储名称值对的集合
Array数组
存储一系列有序数据的集合
String 字符串对象
2. 创建方式
var obj = new Object()
var obj = {name:'jack',age:18}
obj.name = 'jack'
var arr = new Array()
var arr = [10,20,30]
arr.length
3. 属性
length
4. 方法
实例 m到n之间的随机数
0~10 Math.floor(Math.random()*10)
10~20 Math.floor(Math.random()*10 + 10)
20~30 Math.floor(Math.random()*10 + 20)
30~50 Math.floor(Math.random()*20 + 30)
50~80 Math.floor(Math.random()*30 + 50)
....
m~n Math.floor(Math.random()*(n-m) + m)
/*
返回m到n之间的随机数
*/
function getRandom(x,y){
var n = Math.max(x,y)
var m = Math.min(x,y)
return Math.floor(Math.random()*(n-m) + m)
}
var r = getRandom(40,15)
document.write(r)
<script>
function test1(){
var r = Math.random() // 0 ~ 1 (包含0不包含1)
document.write(r)
}
function test2(){
var num = 10.4
// var num1 = Math.ceil(num)
// var num1 = Math.floor(num)
var num1 = Math.round(num)
document.write(num1)
}
// test2()
function test3(){
var num = -9
var num1 = Math.abs(num)
document.write(num1)
}
// test3()
function test4(){
// var m = Math.max(34,56,78,65,98)
var m = Math.min(34,56,78,65,98)
document.write(m)
}
test4()
</script>
进制转换
进制与进制转换
进制
计数的一种方式, 现实生活中一般十进制计数
十进制 0 ~ 9
+ 1
10
满十进一
二进制 0 ~ 1 计算机使用二进制
满二进一
10 11 100
+ 1
-----
100
2 3 4
八进制 0 ~ 7
满八进一
10 11
8 9
计算机区分
010
十六进制 0~9 A B C D E F
满十六进一
0x10
进制转换
1. 十进制转其它进制
toString(进制)
var num = 100
-> 转二进制
num.toString(2) ->
2. 其它进制转十进制
parseInt(100,2) -> 十进制数
parseInt(100,8) -> 十进制数
<script>
function test1(){
var num = 010 // 编程时八进制前加0
var num1 = 0x11
console.log(num, num1)
}
function test2(){
var num = 27
console.log('二进制 :', num.toString(2) )
console.log('八进制 :', num.toString(8) )
console.log('十六进制 :', num.toString(16) )
}
// test2()
function test3(){
var num = 100
console.log( parseInt(num, 2) )
console.log( parseInt(num, 8) )
console.log( parseInt(num, 16) )
}
test3()
</script>