Javascript É Uma Linguagem Engraçada 🤡
Вставка
- Опубліковано 29 сер 2024
- Javascript é uma linguagem intankavel e eu posso provar. Por mais que essa bela linguagem de programação presentei os seus programadores com um belo ecossistema ela tem as suas falhas. Mas boas notícias, pelo menos não é Python.
🌟 Transforme Sua Carreira com Node.js! 🌟
Já pensou em se tornar um mestre em Node.js e ainda economizar uma fortuna? 🎯 Nosso curso, o maior e melhor do Brasil, está com 87% de desconto! Isso mesmo, 87% OFF!
🚀 Por que escolher nosso curso?
Aprendizado prático: Vá além da teoria com projetos reais.
Top do mercado: Conteúdo atualizado e de alta qualidade.
Carreira turbinada: Aumente suas chances no mercado de trabalho.
Não deixe essa oportunidade passar! Seja um desenvolvedor Node.js de destaque!
🔗 www.udemy.com/course/formacao-nodejs/?couponCode=9175CD7BAE837CF6AC5A
Aproveite enquanto a oferta dura! 💥
Null e Zero são conceitos semelhantes, mas são distintos. Na programação o zero representa o valor zero, enquanto null é a total ausência de valor.
Palavras profundas
Poético
Null é nada, zero é um numero, logo zero não é igual a nada.
@@tradetop007 zero e igual a nada sim, zero e a representação do nada
Mano você já pensou em ser professor kkk
JS: Se quiser sim, mano
Kkkkkkkk grande JS formando loucos
console.log = () => console.debug("js")
console.log() pronto
Pse já que insiste...
@@frangus4085 Pica-pau "talvez eu esteja louco..."
js:se quiser sim, mano
Quando você utiliza um operador de = no javascript o que o compilador faz é testar não(!) é > ou < respectivamente .Exemplo:você: 3true compilador: (3>4)! -->(false)!-->true
Você: 101)!->(true)! -> false
Quando você usa um operador númerico em um tipo de variável primitiva que não pode ser convertida em número o Javascript transforma isso em NaN(Not a Number) e qualquer comparação númerica retorna false: com null0)! -> (false)!-> true
Null ocupa memoria logo null é maior igual a zero
Exato
Bom isso explica o "erro" mas ainda é um "erro" entre muitas aspas.
Compilador??
@@rodrigosor pensei o mesmo kskdkdkdkksks
Null é trans, pode ser o que quiser kkkkk
???
@@e0IOI0e uma piada
Transgênico ah tah
kkkkkkkkk
Null assistiu a barbie KKKKKKKKKKKKKKKKKK
É aquilo que dizem... Existem infinitos maiores que outros kkkkkk
Até isso tem mais sentido que a conclusão do Javascript.
Verdade um exemplo é o infinito dos números inteiros ele é maior que a infinita fração de um único número irracional.
Exemplo: π < ∞
@@bryan13rbx números irracionais não são frações e π não é infinito, ele tem uma representação decimal infinita por causa do nosso sistema numérico ser decimal.
E se nós fossemos considerar os dígitos de π, ele seria maior que o conjunto dos números naturais.
@@iantinoSó uma correção, é possível estabelecer uma bijeção entre os números das casas decimais de Pi e os naturais:
3.1415....
1 -> 1
2 -> 4
3 -> 1
4 -> 5
5 -> 9
.
.
.
O conjunto dos números naturais tem o mesmo "tamanho" (mesma cardinalidade) que a sequência das casas decimais de Pi.
@@iantino sim, ele nao eh infinito, mas eh constante
Já diz a famosa frase: "Tudo q puder ser cagado em JS, será cagado em JS".
Ass~ Alah turingui
Sinceramente tinha vaga aberta de ganhar mais de 8k pra programar em Java, ninguém queria 😂😂 eu mesmo ainda quero ter meus cabelos, e já tenho poucos, prefiro ganhar meus 5k programando até em calculadora mas não trampo com JS nem no inferno.
JavaScript é uma linguagem tão ruim, que roda em todos os navegadores. Apenas os softwares mais complexos que se pode imaginar.
@@israelpablocoelho2229 É 1 buraco negro: qto + aparece, + vagas são abertas, + gente a estuda por tais vagas, logo + gente a programa, logo ela aparece +... e o ciclo se repete.
@@israelpablocoelho2229 JS foi feita especialmente para o desenvolvimento web, então isso não é mérito, na verdade o oposto, já que ponta disso ela foi mal projeta. Por sorte veio o TypeScript e NodeJS pra salva-la (e Node nem salva tanto)
Programador: Null > 0?
JavaScript: Ramon!
Caralho meu cérebro ta tentando processar oque os comentários estão explicando 🤨
0 = 0
Null =
(eu so entendi isso)
0 na programação é um valor e Null é a ausência total de valor…
Eles não sabem sobre o que estão falando, perdoe.
Null não é menor que zero. É basicamente isso.
Nem meu PC consegue processar javascript de tão cheio de tralha que é, imagina então meu cérebro
Mesma coisa na matemática, vazio é diferente de zero.
E por isso eu gosto de se referir a programação como uma update da matemática
Isso mesmo, e nem é algo difícil de se entender
Ø é diferente de 0
Mas explica aí o maior ou igual a 0, porque se não é maior e nem é igual a 0, como que vai ser maior ou igual a 0????
Isso explica só a parte fácil. O BO mesmo é que null = 0. Ou seja, na verdade esse é só um erro mesmo. Mas boa teoria
se quiser sim mano
Quem criou a gramática do javascript está bêbado 😂😂😂
Desenvolveu e não testou.
Única coisa que penso é unidade imaginaria(Raiz quadrada de -1)já que n é 0 nem positivo nem negativo
Nulo é 4 letras
O javascript foi criado em 7 dias kkkkkk
@@edu7092c em 9 dias
JS cansa por causa dessa permissividade. JS entusiasma por causa dessa permissividade 😂
Só cansa se vc estiver fazendo um código porco, essas coisas peculiares do js não fazem diferença se sua estrutura de dados estiver correta e os conceitos de código limpo estiverem sendo seguidos!
@@minimovzEt todo código em JS é um código porco por si só. JS pode ser legal para muita coisa, mas como linguagem ele ocupa mais espaço do que merece
não custava nada retornar falso quando comparasse null com numeros@@minimovzEt
Essas coisas são muito específicas e descritas na ECMA. Em resumo, por nao ter tipos, além dos primitivos ele tenta forçar alguma coersao para operações que quando fortemente tipadas gerariam algum erro na operação.
eu acho muito mais seguro gerar um warning na hora de escrever o codigo do que o erro passar despercebido e gerar erros logicos durante o uso, por isso acho var interessante no c#, voce nao precisa se preocupar com qual tipo ta usando, mas quando for usar uma operação o compilador vai se certificar de que a operação pode ser generica usada em uma variavel generico caso contrario voce tem que dar um cast na variavel pra forçar a operação
Sua pergunta confunde. A operação pergunta se null é maior ou igual a zero.
Vc diz q null nunca será maior ou igual a zero que é verdade. Criando uma confusão.
NULL É A LENDA DO MINECRAFT QUE É TIPO UMA SOMBRA COM OLHOS BRANCOS
Como dizer que é Nutella sem dizer que é Nutella.
Vou resumir :
0 = valor
Null = valor nenhum
Fora q em momento nenhum o esperto do vídeo comparou tipos... Se ele souber como é feito isso...
@@JVenonTeam vocês é que não entenderam o que ele está dizendo a última ficou meio dubia da forma que ele falou.
if(null >= 0){
}
deveria retornar false igual os outros dois, porém retorna como verdadeiro.
Nulo é nulo , zero é zero , onde tá a dificuldade? Povo é xarope 😂
Se nulo é nulo, então não faz sentido ser maior ou igual a zero😅
Sim, ai que está o erro, nunca que null >= 0 deveria retornar true, deveria ser false igual aos outros null > 0 ou null == 0;\
porém na prática retorna true onde não deveria
//compara se null é maior que zero, vai retornar false
if(null > 0){
window.alert(true);
} else {
window.alert(false);
}
//compara se null é igual que zero, vai retornar false
if(null === 0){
window.alert(true);
} else {
window.alert(false);
}
// o resultado vai retornar true(verdadeiro)
if(null >= 0){
window.alert(true);
} else {
window.alert(false);
}
É tipo o "não conheço mas sem que é" ou "É raro, mas acontece sempre"
é porque o comparador ">=" realiza uma coerção de tipos, convertendo o valor comparado em números, então nulo se torna 0 e por isso ele retorna verdadeiro.
O cara é literalmente a skin do "🤓" kKkkkkkKKkKkKak
>, 0, não NaN, ex: null >= -1 retorna true, null > 0 retorna false, pq null foi implicitamente convertido pra 0 e zero é igual a zero, mas comparando null == 0 rertorna false pq em uma operação de igualdade obviamente não vai acontecer a conversão de tipos, por isso null continua sendo null, logo null é diferente de 0.
isso é um recurso da linguagem não um bug, se aprender a usar ele direito vai facilitar as coisas.
resumindo, se seu codigo fica dando pau por causa desse tipo de coisa é pq seu código é um lixo que não usa adequadamente o recurso de tipagem dinamica da liguagem, se vc é iniciante sugiro que não comece aprendendo JS, Python, Perl, Ruby, PHP... Como primeira linguagem, comece por alguma fortimente tipada, consilide os conceitos básicos primeiro, para depois se aventurar em liguagens que oferecem esse tipo de ferramenta 'hipster', além de vc não usar ainda vai reclamar falando que é bug da linguagem.
Null é representado em memória como um numero binario, assim como tudo em computação. Pela regra considere null como ausência de valor. Sempre compare se algo é null ou diferente de null.
@@rodbrowning você tá meio que misturando alguns conceitos ai meu mano.
Olha só, em C, o "null" é representado por um ponteiro com valor zero em um endereço de memória convencionado como inválido. Ou seja, a parada é que a representação binária do "null" em C é igual à do *zero*.
Já no JavaScript, "null" é uma espécie de palavra-chave que significa um valor nulo ou "vazio" apontando pra um *objeto* que nem existe na memória. Tô explicando isso porque você usou um conceito geral pra explicar uma situação específica, o que você falou não tem nada a ver com o problema que tá rolando no vídeo.
No JavaScript, essa coisa toda acontece por causa das conversões automáticas que a linguagem faz, não tem nada a ver com endereços de memória, sacou?
Se quiser entender melhor, dá uma olhada na documentação do JavaScript lá no developer.mozilla, tem uma aba chamada "null" no menu, onde explicam isso usando os operadores "==" e "===". Talvez isso te ajude a entender por que "null > 0" dá "true".
Abraço! 🤙
@@rodbrowning "Sempre compare se algo é null ou diferente de null."
E, cara, por favor, não seja um programador preguiçoso. "null" js é um tipo primitivo "null". Não faça comparações entre variáveis de tipos diferentes ou inicialize variáveis como null/undefined.
Eventualmente pode ser necessário criar nulos, mas deixar isso em todo o código por simples preguiça de programar algo descente é sujeira.
Se fizer dessa forma vc nunca vai ter esse tipo de erro, não precisaria fazer verificações do tipo null/undefined, e vai evitar outros erros também.
+código === -bugs 🤙
@@Matheus-mp1wf Vamo la. quando vc compara null >= 0 o null é convertido para 0 que é igual a 0. Quando compara null == 0 ele não converte null para numero.
@@Matheus-mp1wf Não sou preguiçoso. Na verdade nunca usei nenhuma dessas comparaçoes nos meus codigos. Só disse isso pra acho mais provavel a pessoa ter que comparar se algo é null ou não do que se null é maior, menor, igual, whatever.
O que falar de uma linguagem que as palavras undefined, NaN e infinity não são palavras reservadas kkkkkk
que? Tá me dizendo que posso fazer let infinity = infinity?
Vão ver PHP kkkk aquilo sim é gambiarra
verdade kkkkkkk
Os dois sao gambiarra kkkkkk
depois que descobri Typescript minha vida foi outra kkkk
Ótimo conteúdo.
Null é usado para indicar que a variável não contém nada, ou seja, o ponteiro da variável não aponta para um endereço da memória.
Se a variável aponta para o endereço onde contém o inteiro zero ela não é null.
Isso é mais usado em c/cpp que é feito a alocação de memória diretamente.
Em C, null, nil e false é igual a zero quantitativamente. Estes representam apenas conceitos diferentes. O problema começa quando operandos são expressões, por exemplo, true é "diferente de false", não é igual a 1. Várias outras situações decorrem disso. Ainda dá para fazer operação quantitativa usando o produto da avaliação. Isto somente porque C é todo selvagem. Em outras linguagens, todo valor tende a ser um tipo de instância de um tipo/classe, o que faz deles objetos, onde são consequentemente não quantitativos.
É incrível como o Minecraft foi feito usando essa linguagem
Foi em java
Isso acontece pq para fazer a verificação >=, o 'javascript' verifica se null não é e =)
Aprendam nulo == nada, mas também "nada" não pode ser representado por zero só para evitar confusões nas Variáveis pois significa que a variável não tem nada, e se ela tem 0, ela tem algo
to aprendendo a programar com shorts slk
Pessoal me corrija mas está certo null nunca vai ser maior ou igual a zero, pois são tipos primitivos diferentes onde não contém semelhança nenhuma.
No JavaScript, esses resultados aparentemente confusos se devem ao fato de que o operador de comparação null não segue as mesmas regras de coerção de tipos que outros valores numéricos. Vou explicar cada comparação individualmente:
null < 0: Quando null é comparado com um número (0), ele é tratado como um valor menor que qualquer número, incluindo 0. Isso acontece devido a uma decisão de design na linguagem, onde null é considerado menor que qualquer número. Portanto, null < 0 resulta em true.
null > 0: Da mesma forma, null é considerado maior que qualquer número, incluindo 0. Isso pode parecer contraintuitivo, mas é uma característica do JavaScript. Portanto, null > 0 também resulta em true.
null === 0: O operador de igualdade estrita (===) não realiza coerção de tipos. Como null e 0 são de tipos diferentes, a comparação direta entre eles resulta em false.
null >= 0: Neste caso, a linguagem JavaScript não segue a regra de coerção de tipos para o operador >=. Em vez disso, null é tratado como um valor maior ou igual a qualquer número, incluindo 0. Isso é uma particularidade do JavaScript e, novamente, pode parecer confuso, mas é como a linguagem foi projetada. Portanto, null >= 0 resulta em true.
Esses comportamentos podem parecer estranhos à primeira vista, mas fazem parte das especificações da linguagem JavaScript. É importante estar ciente dessas nuances ao escrever código para evitar resultados inesperados.
A primeira analogia que vi, sobre uma garrafa de água vazia é zero, a inexistência da mesma garrafa é nulo, eu consegui entender a lógica e diferença entre esses dois.
Outra coisa também é pensar que zero é um valor e null é um status.
Por isso que nao se usa null.
É muito melhor encapsular os tipos em um Funtor Maybe ou Either e delegar a funcao de lidar com os erros para o Monad.
Assim voce da bind nas funçoes dentro do conjunto padrao da aplicação usando operadores como maybe_or, result_or e por ai vai.
🤯 tem isso no js? eu lembro disso no java, mas n no javascript ou typescript
@@edu7092c Não. Ou você usa uma biblioteca externa ou você monta seu proprio monad usando funções genericas e interfaces. nao é tao dificil
No JavaScript, quando se compara null a um número usando operadores de magnitude (>, =,
Isso acontece porque, para os operadores de comparação, o null é convertido para 0. Portanto, null >= 0 se torna 0 >= 0, que é true. Da mesma forma, null
Muito bom seus vídeos! Parabéns!
O 0 é zero, é um valor
O null é nada, nada mesmo
E o undefined?
@@almondegas-a indefinido
Java: nós não fazemos isso aqui meu nobre, agr toma esse null pointer e vire um programador de verdade.
É pq vc não colocou completo, vc tinha que ter botado “null Zé” 😂😂😂😂😂😂😂😂😂 😂 e
O cara descobriu a famosa função Ednaldo Pereira do js, bem vindo ao clube amigo
Eu acho que deve ser assim! Pense o seguinte! Zero é uma memória Vazia! Null é uma memoria sem o Registro que pode está ocupado ou não! Se tiver ocupado é maior que zero se não tiver é igual. Mas vc não sabe estado de Null, então sempre será >= Só teoria minha,
(na minha total falta de conhecimento no assunto) eu acho que é null é tipo, não tem valor, por exemplo: "você me ama?" Não dá pra responder 1,2, -6 ou 0. Não tem como representar com números. Se eu responder "nulo" é por que não amo ksksksksks só um exemplo pra tentar explicar minha visão
Vc ta bem? De tantos exemplos logo esse jkkk
@@sevenss707😂😂😂😂
0: número que representa o nada.
null: representa a ausencia de número.
Achei interessante e bem inteligente o Java se inteligente significa engraçado concordo é muito engraçado kkkk
era mais fácil tu ter comecado pela ultima pergunta 😂
Null é a auxencia de valor, 0 é um valor, o valor 0. porque ele funciona é porque os comparadores >= e
Esse pulou a aula de tipos kkkkk
null é filosófico 😂
O zero é um valor, null é a ausência de qualquer valor
é a mesma coisa falar que [nada] é igual a 0 kakakaka. Já teve debate sobre isso com meus amigos mas a conclusão é que (zero) é algo definido já o [nada] não é nem maior, nem menor, nem igual a (zero), (zero) e [nada] são coisas parcialmente diferentes, onde zero é algum número (um valor), já [nada] é um conceito filosófico ou abstrato que indica a ausência completa de qualquer coisa.
a relação entre comparison/equality operators e explicit/implicit coersion pode soar um pouco tricky mesmo, mas... "faz sentido" depois de uns anos kkkk
isso é o famoso coerção de tipos. Ele coloca null como zero
Não faz sentido pois null == 0 deveria dar true
@@stomperhk9107 No caso do operador de igualdade ampla(==), a especificação do JavaScript (ECMAScript) diz que null só é considerado igual a undefined e não a qualquer outro valor, incluindo 0
@@FernandoAOBorges Então, é isso que quebra a sanidade do developer
@@stomperhk9107 pois é, isso é a loucura do JS. O segredo é utilizar sempre a igualdade restrita( "==="). A maioria das regras dos Eslints hoje em dia pedem para utilizar o triplo igual.
@@FernandoAOBorges Sim, eu inconscientemente uso igualdade estrita, indepente se eu tiver certeza que não haverá uma coerção de tipo, eu continuo usando.
null pelado com a mão no bolço
pelado pelado! Null com a mão no bolso kkkk, peguei a referência
0 = um valor
Null = ausência de qualquer valor
Talvez isso aconteça pq , o Java script não indetifique null com um número , e sim considere como o nada
Meu mano é literalmente o "🤓"
(NÃO leve como "ofensa", por favor).
Pelado pelado null com a mão no bolso 🎸
Muito fácil de entender, null é a negação dos números reais positivos
Não para quem enveredou pela área matemática e física, com graduação em engenharia mecânica + cerca de 30 anos com programação estruturada.
No começo eu pensei: ah, mas é que null significa absolutamente nada
Mas ai apareceu um True e minha cabeça começou a sair fumaça
É PORQUE ELE É OS DOIS, ELE É MAIOR E IGUAL
MATEI A CHARADAAAAAA AHHAHAHHA
é porque null representa que não a Nada, ja zero é um numero que é algo mesmo tendo um valor considerado nulo, ou seja zero não é nulo e sim um numero que não tem valor
regra de coerção implícita, pesquise isso e entenda se não entendeu pq deu true :)
Pra quem não entendeu:
null representa o seguinte conjunto: {ø} ou seja, um conjunto vazio
0 representa o seguinte conjunto: {0} ou seja, um conjunto com o valor 0
E como que deu >=0 se isso não está no conjunto {ø}?
MEME DE 30 ANOS:
Primeiro dia na internet: Posta tabela verdade do JS.
Pelo oque eu entendi lendo os comentários:
Vamos supor que tenha uma pessoa A em um lugar aleatório. Imaginamos que ela possa vestir 5 casacos. Cada casaco representa a variável "roupa".
A roupa 0 seria a roupa favorita dela. E a roupa 5 uma roupa que ela odeia.
Se a pessoa estiver com a roupa 0, ela estaria com a roupa que ela mais gosta.
Mas, se ela estiver com a roupa null, significa que ela ta pelada
Null é igual ao conjunto vazio da matemática, zero continua sendo um número
Mas isso se vc tiver fazendo operações, se não, ele é um valor falso.
@@cortespoliglotazero é um número falso? Desculpa eu não entendi
@@John_2007 Sim, 0?true:false
@@cortespoliglota ih, vc ganhou no argumento
"mike tá doidu fi?"
Mano, procura por inequações. Se é maior ou igual, não pode ser necessariamente maior ou necessariamente igual. Dá false porque não tá definido :/
Quando null é comparado com um número usando os operadores de comparação não estrita (==, !=, >=, = 0, JavaScript converte null para 0 e compara 0 >= 0, que é verdadeiro.
Null == 0 é falso porque o JavaScript usa uma regra específica que diz que null só é igual a undefined e a nada mais, mesmo após a coerção para número.
null > 0 é falso porque null se torna 0 na comparação e 0 não é maior que 0.
null < 0 também é falso por uma razão similar: após a conversão, 0 não é menor que 0.
E pensar que o notch programou o minecraft inteiro nisso, e sozinho ainda por cima
Minecraft foi feito com Java, e não JavaScript. São linguagens diferentes
Null é a ausência de qualquer informação e zero é a ausência de qualquer valor numérico, mas o zero pode também representar um valor ou uma informação e o null pode relacionar esse dado tornando o resultado tanto verdadeiro quanto falso. Esse recurso é usado em simuladores para calcular interpolações.
Tenho um amigo programador que acabou de se formar e já está ganhando 30 mil por mês como senior.
Faz a até sentido já que 0 e null são "falsy values" então eles são condicionalmente equivalentes.
Null é maior igual a zero porque ele conta também as letras. Kkkkk
ai teria ser null > 0 = true também
Aí é uma situação em que não tem uso, tá tranquilo, tá favorável.
To aprendendo JavaScript na escola, ta bem maneiro mas é bem confuso tbm
É igual na roleta, o 0 e o 00 tem a mesma função porém são diferentes
Da hora eu também estou nesse mesmo problema estou começando a programação e tô desse jeito também sem entender nada😅
isso prova que, null representa ao interpretador javascript que ocupa mais espaço do que 0. null na teoria é a ausência de valor, mas na prática é um valor maior do que 0 para o interpretador.
Cara to estudando Full Stack e estou aprendendo no momento logica de programação, e o pior que consigo entender alguns termos que estão sendo falados.
Ele não um ou outro, e o os 2 kkkkkk
Kakaka nerdão, porem inteligente parabéns
1 Valor na conta bancária== 0
2 Valor na conta bancária== null
Em 1 exemplo representa o valor de saldo
Em 2 exemplo representa a anulação de QUALQUER valor. Entao nem alteração pode haver ali. Mas no 1 exemplo pode
Eu tava concordando com o js até chegar no final
Tudo que sei do Java e baixar pra jogar Minecraft kkkk
Eu n entendi o final do video, e vendo os comentarios parece q eu to no final
Eita, essa eu não sabia não, kk
pelo que pesquisei, o javascript faz regra de conversão de tipo do que está na esquerda e não é número. Logo, null > 0 será convertido para 0 > 0 (false).
Já o operador === não faz a conversão de tipo, resultando em null === 0 (false)
Mas no caso de null >= 0, o que acontece por baixo dos panos é que null vira 0 (por causa da conversão imposta pelo >), logo, 0 >= 0 true.
confesso que é uma coisa bizarra e parece contraditória eauehahe
Algum jovem destemido front ou back que queira participar de um projeto?
Acho que no caso foi os símbolos >= que o JS considerou TRUE e não a palavra NULL
Null quer dizer que nao existe nenhum valor armazenado na memoria, enquanto zero é um valor
LuaScript: Calma lá meu patrão!
ele não ta dizendo que nunca ele ta dizendo que é igual ou maior
Mds... é eu pensando que não ia ser tão difícil assim 💀
Tá isso eu já sabia agora me da um exemplo de qnd se usa esse bgl
Null pode se adaptar a um modelo tipo texto vazio ou numa operação matemática como 0, não afetando como texto e prejudicando a operação. Null é maior ou igual a 0 ou “”
Melhor ir pro Python lá é mais fácil de ser compreendido ...
Isso acontece pq o operador >= faz a conversão para number